用PHP检测?

时间:2011-09-23 23:56:57

标签: php

我有一个脚本来检查另一个页面的来源,我正在搜索代码

 <span class="item-header">

在源头。当它找到它时,我不打算打印跨度中的所有内容,但我不确定如何在PHP中执行此操作?如何检查何时停止打印跨度后的所有内容,直至找到</span>这是我的代码:

 if (stristr($source, '<span class="item-header">')){
   // What to do here?
 }

任何想法? :)

2 个答案:

答案 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代替基于正则表达式的搜索可能会更好。这样你就可以获取跨度的节点并获得文本值。