Я создаю сайт PHP, который загружает файлы JSON из EveryPolitician от MySociety. Некоторые из этих файлов небольшие, а другие - супермассовые. Вот два примера типичного запроса, что я делаю: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");
Первая линия работает отлично, который я считаю, это из-за малого масштаба файла запрашивается, но вторая строка загружается навсегда в браузере, прежде чем возвращать ошибку тайм-аута шлюза (504).
Если я укажу свой браузер на второй URL-адрес, он загрузится нормально (хотя через несколько секунд, в конце концов, он довольно большой). Пока скрипт работает на моей локальной машине, поэтому нет никакой разницы в пропускной способности или скорости интернета. Как вы можете видеть, оба файла находятся в GitHub.
Смущает меня еще в том, что вторая линия действительно работала один раз, пару дней назад.
Это просто ограничение PHP_file_contents()? Есть ли способ обойти это с помощью file_get_contents() или есть ли другая библиотека, которая будет работать лучше в этом случае?
завитка более надежный и настраиваемый, чем file_get_contents –
и [Guzzle] (https://packagist.org/packages/guzzlehttp/guzzle) - более удобная оболочка вокруг завитка. – Sammitch