0

私は次のPHPを持っています。基本的に、私はウェブサイトの複数のページから同様のデータを取得しています (野球選手のプロフィールがたくさんあるウェブサイトからの現在のホームラン数)。取り込む JSON には、取得しようとしているさまざまなプロファイルのすべてへのすべての URL が含まれているため、URL を実行してデータを取得するには PHP が必要です。ただし、次の PHP は最初の URL からのみ情報を取得します。私はおそらく愚かな間違いを犯しています。なぜすべての URL を通過しないのか、誰にもわかりますか?

        include('simple_html_dom.php');

        $json = file_get_contents("http://example.com/homeruns.json");

        $elements = json_decode($json);

        foreach ($elements as $element){
                $html = new simple_html_dom();
                $html->load_file($element->profileurl);
                $currenthomeruns = $html->find('.homeruns .current',0);
                echo $element->name, " currently has the following number of homeruns: ", strip_tags($currenthomeruns); 
                return $html;
        }
4

3 に答える 3

3

待って... return $html を使用しています。なんで?Return は関数から抜け出し、foreach を停止します。

実際にすべての要素に対して関数から取得しようとしている場合は$html、それぞれを配列にプッシュ$htmlしてから、ループの後にその配列を返す必要があります。

于 2013-03-01T00:09:08.987 に答える
0

あなただからreturnreturnすべてのループを含む現在のメソッド、関数、またはスクリプトを終了します。PHP5.5 ではyield、関数をジェネレーターのように動作させるために使用できますが、これは現時点では明らかに範囲外です。

于 2013-03-01T00:09:00.117 に答える
0

中かっこがオフになっていない限り、ループの最後に戻るので、ループは繰り返されません。

于 2013-03-01T00:10:14.213 に答える