Цикл Foreach умирает после одной итерации
Я экспериментировал со ScraperWiki, и вчера я мог получить список всех li
с в DOM. Однако сейчас я выполняю только одну итерацию.
Это мой код
$html = 'www.blah...'
$dom = new simple_html_dom();
$dom->load($html);
print_r('Starting parse');
$events = $dom->find("ul.listing li");
print_r('Found '.count($events).' events'); // shows there are 26 nodes
foreach($events as $data){
// perform some processing then print to the console
Я на самом деле не парень PHP, поэтому я могу упустить что-то очевидное. Полный исходный код находится на https://scraperwiki.com/scrapers/days_of_the_year/
2 ответа
Решение
Как очень неуклюже с моей стороны. Я упустил тот факт, что вывод был усечен после одной строки в консоли. Я добавил разрыв строки и теперь получаю ожидаемый результат.
В связанном источнике цикл foreach отличается:
foreach($events->find('li.listPost') as $data) {
// ...
}
Похоже, это указывает на то, что $events - это пользовательский объект, и его нельзя перебрать без какого-либо метода получения, такого как find().