MySocietyのEveryPoliticianからJSONファイルをダウンロードするPHP Webサイトを構築しています。これらのファイルのうちのいくつかは小さく、他は超大規模です。ここで私が作っている、典型的な要求の2つの例です:PHP file_get_contents大きなファイルに504を返します
$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");
最初の行が正常に動作しますが、しかし、 Gateway Timeoutエラー(504)を返す前に、2番目の行がブラウザで永久にロードされます。
私のブラウザで2番目のURLを指し示すと、ブラウザはうまくロードされます(ただし、数秒後にはかなり大きい)。現時点では、スクリプトはローカルマシン上で実行されているため、帯域幅やインターネットの速度に違いはありません。ご覧のとおり、両方のファイルはGitHubからのものです。
もう2つの行が実際には数日前に一度動作したということです。
これはPHPのfile_get_contents()の単なる制限ですか? file_get_contents()を使用して回避する方法はありますか、この場合はさらにうまくいく別のライブラリがありますか?
カールがあるのに役立ちますより堅牢で設定可能なファイル_get_contents –
と[Guzzle](https://packagist.org/packages/guzzlehttp/guzzle)は、カールの周りのユーザーフレンドリーなラッパーです。 – Sammitch