PHP解析HTML标签
可能重复:
如何使用PHP解析和处理HTML?
我对PHP很新。 我有一个字符串变量中某个页面的body标签的文本。 我想知道它是否包含一些标签...在哪里给出标签名称tag1,如果是,则只从该字符串获取该标签。 我怎么能在PHP中简单地做到这一点?
谢谢!!
你会看到像这样的东西:
<?php
$content = "";
$doc = new DOMDocument();
$doc->load("example.html");
$items = $doc->getElementsByTagName('tag1');
if(count($items) > 0) //Only if tag1 items are found
{
foreach ($items as $tag1)
{
// Do something with $tag1->nodeValue and save your modifications
$content .= $tag1->nodeValue;
}
}
else
{
$content = $doc->saveHTML();
}
echo $content;
?>
DomDocument表示整个HTML或XML文档; 充当文档树的根。 因此,您将拥有一个有效的标记,并通过标记名称查找元素,您将无法找到注释。
另一种可能性是正则表达式。
$matches = null;
$returnValue = preg_match_all('#<li.*?>(.*?)</li>#', 'abc', $matches);
$matches[0][x]
包含整个匹配,例如<li class="small">list entry</li>
, $matches[1][x]
仅包含内部HTML,例如list entry
。
快速方法:
查找tag1的索引位置,然后查找/ tag1的索引位置。 然后剪下这两个索引之间的字符串。 在php.net上查找strpos和substr如果字符串太长,这也可能不起作用。
$pos1 = strpos($bigString, '<tag1>');
$pos2 = strpos($bigString, '</tag1>');
$resultingString = substr($bigString, -$pos1, $pos2);
您可能需要添加和/或减去$ pos1和$ pos2中的某些单元才能获得$ resultsString权限。 (如果你对他们叹息中的tag1没有评论)
正确的方式:
查找HTML解析器
链接地址: http://www.djcxy.com/p/29901.html上一篇: PHP parse HTML tags