使用PHP简单DOM解析器的递归

使用PHP简单DOM解析器的递归,php,recursion,simple-html-dom,Php,Recursion,Simple Html Dom,由于某些原因,我在使用简单DOM解析器库时得到了递归 我的HTML就像 <div id="root"> <div class="some_div">some text</div> <div class="field_1 misc1"><a href="#">Some text link</a> <strong>15</strong></div> <div cl

由于某些原因,我在使用简单DOM解析器库时得到了递归

我的HTML就像

<div id="root">
    <div class="some_div">some text</div>
    <div class="field_1 misc1"><a href="#">Some text link</a> <strong>15</strong></div>
    <div class="field_2 misc2"><a href="#">Some text link</a> <strong>25</strong></div>
</div>
我试着从上面的HTML中得到15和25个值。但是当我跑的时候

$ret = $html->find('div[id=root]'); 
print_r($ret);
我的脚本返回了大量递归-我做错了什么?如何正确获取15和25个值?

不要在DOM对象上使用
print\r()
var\u dump()
。DOM对象具有引用其子对象和父对象的属性。因此,当它打印子元素时,它需要打印其父属性。当它打印父对象时,它需要再次打印子对象,因此它进入无限递归

如果要获取
15
25
,则应使用与这些元素匹配的选择器。然后循环浏览结果并打印文本

$ret = $html->find('#root strong');
foreach ($ret as $field) {
    echo $field->plaintext;
}

简单的html dom对象具有对其父对象的引用。因此,当
print\u r()
打印子属性时,它会尝试打印父属性,然后再次尝试打印子属性,依此类推。
$ret = $html->find('#root strong');
foreach ($ret as $field) {
    echo $field->plaintext;
}