使用PHP PCRE获取div内容

时间:2009-09-03 23:55:46

标签: php regex pcre


我正在尝试使用PHP的PCRE从div(基于他的id)获取数据。目标是根据他的id获取div的内容,并使用递归/深度来获取其中的所有内容。这里的主要问题是在“主要div”中获取其他div,因为正则表达式会在初始 </div>之后找到下一个 <div id="test"> 时停止即可。

我已经尝试了很多不同的方法来解决这个问题,而且没有一个方法可行。在我看来,最好的解决方案是使用 R 参数(递归),但从未使其正常工作。

任何Ideais?

提前致谢:D

1 个答案:

答案 0 :(得分:1)

使用某种形式的DOM解析器会好得多 - 正则表达式真的不适合这个问题。如果你想要的只是基本的HTML dom解析,像simplehtmldom这样的东西就在你的小巷里。安装(只包含一个PHP文件)并且使用起来很简单(2-3行可以满足你的需要)。

include('simple-html-dom.php');

$dom = str_get_html($bunchofhtmlcode);
$testdiv = $dom->find('div#test',0); // 0 for the first occurrence
$testdiv_contents = $testdiv->innertext;