如何遍历Dom的所有节点。
我用的是最新的Symfony Crawler。
简单的例子:
<?php
function test()
{
$crawler = new Crawler($html);
$crawler
->filter('body > ul')
->each(function (Crawler $node, $i) {
loop($node);
});
}
function loop(Crawler $node)
{
static $counter;
if ($node->filter('ul')->count() > 0) {
loop($node);
}
$counter++;
echo PHP_EOL,'Node: ', $counter, PHP_EOL;
}
我得到一个消息:
致命错误:最大函数嵌套级别达到'100',流产!在/…/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php on line 269
HTML,例如:
<body>
<ul>
<li>
<ul>
<li>foo</li>
<li>bar</li>
</ul>
</li>
<li>baz</li>
</ul>
<ul>
<li>buz</li>
</ul>
<ul>
<li>uaz</li>
</ul>
</body>
谢谢
在php.ini中增加xdebug.max_nesting_level = 250
的值:http://xdebug.org/docs/all_settings max_nesting_level