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

下一篇: How to parse HTML table using PHP?