我的代码如下: -
$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";
}
问题是在上面的代码中我找到了标题,但我不想打印标题;我想打印这个:“这是标题”,我不知道如何通过查找标题来打印这个。
因为标题就像关键字一样不会改变,但是我想要打印的值是动态值,每次都会改变,这就是为什么我找不到标题的价值。那我该怎么办?
答案 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
这应该让你开始。如果标题位于不同的位置,则可以相应地修改表达式以进行检索。