使用Simple_HTML_Dom获取遵循特定文本的文本

时间:2013-02-26 22:37:48

标签: php html simple-html-dom

Simple_HTML_Dom非常适合抓取特定标签中的内容,但我不确定在抓取文本时如何做除了基础之外的任何事情。这是我正在搜索的代码的示例:

<span>
Some code stuff.
</span>
FirstWord: 88
<span>
More code stuff.
</span>

如您所见,FirstWord和88未包含在任何类型的标记中。这使他们很难抓住。不过这是一个问题:FirstWord将永远是相同的 - 只有数字变化。

所以,我的想法是简单地告诉Simple_HTML_Dom抓住紧跟FirstWord的数字。问题是我不知道如何做到这一点。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

preg_match_all('/FirstWord:\s?([0-9]+)/', $input, $matches);
print_r($matches);

答案 1 :(得分:0)

你可以使用消除过程,假设你的html看起来像这样..

<html>
    <head></head>
    <body>
        <span>Some code stuff.</span>
        FirstWord: 88
        <span>More code stuff.</span>
    </body>
</html>

您可以遍历所有子元素(在本例中为<span>元素),并将其html设置为空字符串。这将使您只剩下'FirstWord:88'。

foreach($html->find('body', 0)->children() as $child){
    $child->outertext = "";
}

echo $html;
// Output:
// FirstWord: 88