我要找标题但打印价值如何?

时间:2013-12-03 18:17:23

标签: php regex

我的代码如下: -

$text = "<div class='title'>Title</div><div class='content'>This is title</div>";

$words = array('Title');

$words = join("|", $words);

$matches = array();

if ( preg_match('/' . $words . '/i', $text, $matches) ){
    echo "Words matched: <br/>";
    print_r($matches);
}

else{
    echo "Not match";
}

问题是在上面的代码中我找到了标题,但我不想打印标题;我想打印这个:“这是标题”,我不知道如何通过查找标题来打印这个。

因为标题就像关键字一样不会改变,但是我想要打印的值是动态值,每次都会改变,这就是为什么我找不到标题的价值。那我该怎么办?

1 个答案:

答案 0 :(得分:0)

不要使用正则表达式来解析HTML。请改用DOM Parser。在这种情况下,您可以使用XPath表达式按类名获取元素:

$text = "<div class='title'>Title</div>
<div class='content'>This is title</div>";
$dom = new DOMDocument;
$dom->loadHTML($text);
$xpath = new DOMXPath($dom);
$title = $xpath->query('//*[@class="content"]')->item(0)->nodeValue;

输出:

This is title

这应该让你开始。如果标题位于不同的位置,则可以相应地修改表达式以进行检索。