2012-03-06 124 views
0

我一直在使用ScraperWiki和昨天的實驗,我可以得到DOM中所有li的列表。但是,現在我只經歷了一次迭代。Foreach循環在一次迭代後死亡

這是我的代碼

$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/

+0

'print_r'用於打印數組和對象,不要用它來打印字符串。嘗試使用'print_r($ events)'來查看'$ events'的結構是什麼。 – MrCode 2012-03-06 08:52:39

回答

1

我多麼笨拙。我錯過了輸出在控制檯中的一行之後被截斷的事實。我添加了一個換行符,現在可以獲得預期的輸出結果。

1

在鏈接源,foreach循環是不同的:

foreach($events->find('li.listPost') as $data) { 
    // ... 
} 

這似乎表明,$事件是一個自定義對象,而不能在沒有某種形式的統一供電getter(如find())。

+0

但是,如果我外推'find',我會得到26個節點,但是每次迭代打印的行只打印一次。 – Echilon 2012-03-06 09:20:42