0

我有以下 PHP。基本上,我从网站的多个页面中获得了类似的数据(来自拥有一堆棒球运动员资料的网站的当前本垒打数)。我引入的 JSON 包含我希望从中获取的所有不同配置文件的所有 URL,因此我需要 PHP 运行这些 URL 并获取数据。但是,以下 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 回答