PHP解析HTML标记

时间:2012-11-19 16:32:31

标签: php html parsing tags

  

可能重复:
  How to parse and process HTML with PHP?

我是PHP的新手。 我在字符串变量中有一些页面的body标签文本。 我想知道它是否包含一些标签...其中给出了标签名称tag1,如果是,则只从字符串中取出该标签。 我怎么能只用PHP做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:16)

你会看到这样的事情:

<?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文档;作为文档树的根。因此,您将获得有效的标记,并且通过按标记名称查找元素,您将找不到评论。

答案 1 :(得分:2)

另一种可能性是正则表达式。

$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