2012-03-06 17 views
0

私はScraperWikiを実験していましたが、昨日、DOMのすべてのliのリストを取得できました。しかし今、私は1回の反復だけを実行します。1回の繰り返しの後にForeach loop dieing

これは、私が何かを明らかに欠落している可能性がありので、私は本当にPHPの男じゃない私のコード

$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 

です。完全なソースがリンクされたソースでhttps://scraperwiki.com/scrapers/days_of_the_year/

+0

'print_r'は配列とオブジェクトを出力するためのものです。文字列の出力には使用しないでください。 'print_r($ events)'を使って '$ events'の構造を調べてみてください。 – MrCode

答えて

1

どのように私の非常に不器用です。私は出力がコンソールの1行の後で切り捨てられたという事実を見逃していました。改行を追加して、期待される出力を得ました。

1

であり、foreachループは異なります。

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

これは$イベントがカスタムオブジェクトである、とのいくつかの種類せずにループスルーすることができないことを示しているように思われますfind()のようなgetter。

+0

しかし、 'find'を外挿してみると、26ノードが得られますが、各繰り返しで印刷された行は1度しか印刷されません。 – Echilon

関連する問題