По какой-то причине я получаю рекурсию при использовании Simple DOM Parser Library.
Мой 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>
Я создал PHP-скрипт, включая один файл
include_once('simple_html_dom.php');
И я пытаюсь получить 15 и 25 значений из HTML выше. Но когда я бегу
$ret = $html->find('div[id=root]'); print_r($ret);
мой скрипт возвращает много рекурсий – что я делаю неправильно и как я могу получить эти 15 и 25 значений правильно?
Не используйте print_r()
или var_dump()
для объектов DOM. Объект DOM имеет свойства, которые относятся к его дочерним и родительским объектам. Поэтому, когда он печатает дочерний элемент, ему необходимо распечатать его родительское свойство. И когда он печатает родителя, ему нужно снова напечатать дочерний элемент, чтобы он попал в бесконечную рекурсию.
Если вы хотите получить 15
и 25
, вы должны использовать селектор, который соответствует этим элементам. Затем проведите через результаты и распечатайте текст.
$ret = $html->find('#root strong'); foreach ($ret as $field) { echo $field->plaintext; }