为什么不是';PHP是否继续在这些URL中运行?

为什么不是';PHP是否继续在这些URL中运行?,php,json,foreach,screen-scraping,Php,Json,Foreach,Screen Scraping,我有下面的PHP。基本上,我从一个网站的多个页面上获得了类似的数据(一个有很多棒球运动员档案的网站目前的本垒打数量)。我引入的JSON包含了我想要从中获取的所有不同配置文件的所有URL,因此我需要PHP来运行这些URL并获取数据。但是,下面的PHP只从第一个URL获取信息。我可能犯了个愚蠢的错误。有人知道为什么它没有通过所有的URL吗 include('simple_html_dom.php'); $json = file_get_contents("http:

我有下面的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;
        }

因为您
返回
return
保留包含每个循环的当前方法、函数或脚本。使用PHP5.5,您可以使用
yield
使函数的行为类似于生成器,但这显然超出了目前的范围。

因为
返回
return
保留包含每个循环的当前方法、函数或脚本。使用PHP5.5,您可以使用
yield
让函数像生成器一样运行,但这显然超出了目前的范围。

等等。。。您正在使用return$html。为什么?Return将中断您的函数,从而停止您的foreach


如果确实要从函数中获取所有元素的
$html
,则应将每个
$html
推入一个数组,然后在循环后返回该数组。

等待。。。您正在使用return$html。为什么?Return将中断您的函数,从而停止您的foreach


如果确实要从函数中获取所有元素的
$html
,则应将每个
$html
放入一个数组,然后在循环后返回该数组。

除非大括号关闭,否则将在循环的最末端返回,这样循环将永远不会迭代。

除非大括号关闭,您将在循环的最后返回,这样循环就不会重复。

您确定
$elements
有多条不同的记录吗?有时候,像这样的小事会让你抓狂。乍一看,您的代码看起来不错。$elements,即JSON,目前包含60个ish条目,所有条目的形式都是
{“name”:“exampleName”,“profileurl”:“exampleURL”}
忽略我的评论,因为我没有看到您的返回,这才是真正的问题。您确定
$elements
有多个不同的记录吗?有时候,像这样的小事会让你抓狂。乍一看,你的代码看起来不错。$elements,即JSON,目前包含60个ish条目,所有条目的形式都是
{“name”:“exampleName”,“profileurl”:“exampleURL”}
忽略我的评论,因为我没有看到你的返回,这才是真正的问题。我花了太长时间才看到它。嗯,如果我放弃返回,我得到以下信息:
致命错误:第1333行的/home/username/public_html/simple_html_dom.php中允许的134217728字节内存已耗尽(试图分配32字节)
看起来我们已经解决了一个问题,是时候问另一个问题了。顺便问一下,1333线是什么?我猜是这样的:
$html->load_file($element->profileurl)
Hm,如果我去掉返回值,我会得到以下结果:
致命错误:第1333行的/home/username/public_html/simple_html_dom.php中允许的内存大小134217728字节(试图分配32字节)看起来我们已经解决了一个问题,现在是时候问另一个问题了。顺便问一下,1333线是什么?我猜是这样的:
$html->load_file($element->profileurl)