Php. Ошибка “failed to open stream: HTTP request failed!”


Данная ошибка возникает при использовании функции file_get_contents и может быть вызвана множеством факторов. Впрочем, решение ее остаточно простое.

Не будем копаться в причинах недоступности URL по простому обращению file_get_contents, так как это могут быть и настройки сервера или php одной стороны — так и аналогичные параметры стороны второй.

Я в своей практике при получении подобной ошибки заменяю вызов file_get_contents на использование cURL.

$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'http://somesite.com/');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
$query = curl_exec($curl_handle);
curl_close($curl_handle);

Во всех случаях, что со мной случались — данный подход полностью решал проблему и нужный результат возвращался в переменную $query.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *