使用PHP简单DOM解析器的递归
由于某些原因,我在使用简单DOM解析器库时得到了递归 我的HTML就像使用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
<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;
}