我有一个脚本来检查另一个页面的来源,我正在搜索代码
<span class="item-header">
在源头。当它找到它时,我不打算打印跨度中的所有内容,但我不确定如何在PHP中执行此操作?如何检查何时停止打印跨度后的所有内容,直至找到</span>
这是我的代码:
if (stristr($source, '<span class="item-header">')){
// What to do here?
}
任何想法? :)
答案 0 :(得分:2)
您可以使用正则表达式,但人们会提醒您不要使用正则表达式解析HTML。我建议使用DOMDocument来解析HTML和DOMXPath来查询文档树。试试这个:
$dom = new DOMDocument();
@$dom->loadHTML($page);
$dom_xpath = new DOMXPath($dom);
$entries = $dom_xpath->evaluate("//span[@class='item-header']");
foreach ($entries as $entry) {
print $entry->nodeValue;
}
答案 1 :(得分:1)
使用an actual parser代替基于正则表达式的搜索可能会更好。这样你就可以获取跨度的节点并获得文本值。