【发布时间】:2016-04-05 09:25:35
【问题描述】:
我正在构建一个从 MySociety 的 EveryPolitician 下载 JSON 文件的 PHP 网站。其中一些文件很小,而另一些则非常庞大。以下是我提出的典型请求的两个示例:
$g = file_get_contents("https://cdn.rawgit.com/everypolitician/everypolitician-data/65c4534/data/US_Virgin_Islands/Legislature/ep-popolo-v1.0.json");
和
$g = file_get_contents("https://cdn.rawgit.com/everypolitician/everypolitician-data/65c4534/data/UK/Commons/ep-popolo-v1.0.json");
第一行运行良好,我认为这是因为所请求的文件规模较小,但第二行在返回网关超时错误 (504) 之前会在浏览器中永久加载。
如果我将浏览器指向第二个 URL,它会很好地加载(尽管几秒钟后;毕竟它很大)。目前,该脚本正在我的本地计算机上运行,因此带宽或互联网速度没有差异。如您所见,这两个文件都来自 GitHub。
让我更困惑的是,几天前第二行确实有效。
这只是 PHP 的 file_get_contents() 的限制吗?有没有办法使用 file_get_contents() 解决它,或者在这种情况下是否有另一个库可以更好地工作?
【问题讨论】:
-
curl 比 file_get_contents 更健壮和可配置
-
和Guzzle 是一个对 curl 更友好的包装器。
标签: php file-get-contents