500 ошибка - file_get_contents или cURL

Статус
В этой теме нельзя размещать новые ответы.

sarkis

Профессор
Регистрация
27 Фев 2014
Сообщения
248
Реакции
40
Доброго времени. Столкнулся с неприятностью :
если в одну из функций попадает неактивный URL, то всегда получаю 500 Internal Server Error.
Вывод ошибок стоит и в любых других случаях показывает ошибки , но не в этом!

На другом моем серваке ошибка при запросе неактивного URL вылазит нормально

Код:
Warning: file_get_contents(http://несуществующий.ru/): failed to open stream: HTTP request failed! in /var/www/user/data/www/test/_test.php on line 5

Не понимаю, где ковырять конфиги, чтобы ошибка была как в примере , а не 500 ? Спасибо
 
а если написать
PHP:
@file_get_contents(...

Оберни file_get_contents в try catch - Для просмотра ссылки Войди или Зарегистрируйся
мне кажется не выйдет, т.к. file_get_contents не выкидывает исключение, а только Warning

P.S. еще можно нафиг вырубить варнинги в начале скрипта -
PHP:
error_reporting(E_ERROR | E_PARSE);
 
Последнее редактирование:
Оберни file_get_contents в try catch - Для просмотра ссылки Войди или Зарегистрируйся


Код:
try {
  echo file_get_contents("http://cat.hr0d0.ru");
} catch (Exception $e) {
  echo $e->getMessage();
}


Ничего не изменилось по-сути =((

Дополню инфу: если запросить несуществующий файл с существующего домена, то ошибка обрабатывается как нужно .

а если написать
PHP:
@file_get_contents(...
- этот вариант не прокатывал изначально (
 
Последнее редактирование модератором:
а если написать
PHP:
@file_get_contents(...
Не рекомендую, рано или поздно вам придётся потратить очень много времени на поиск таких строк с подавлением ошибок.

мне кажется не выйдет, т.к. file_get_contents не выкидывает исключение, а только Warning
Точно, это я разбалованн фреймворками, где ошибки php переводятся в исключения - Для просмотра ссылки Войди или Зарегистрируйся
 
Код:
try {
  echo file_get_contents("http://cat.hr0d0.ru");
} catch (Exception $e) {
  echo $e->getMessage();
}


Ничего не изменилось по-сути =((

Дополню инфу: если запросить несуществующий файл с существующего домена, то ошибка обрабатывается как нужно .

- этот вариант не прокатывал изначально (

а
PHP:
error_reporting(E_ERROR | E_PARSE);
?
 
а
PHP:
error_reporting(E_ERROR | E_PARSE);
?

вообще никакого сдвига .. )) Просто вот думаю, как бы не пришлось переустанавливать сервак . Вроде норм работала раньще и перестала
 
вообще никакого сдвига .. )) Просто вот думаю, как бы не пришлось переустанавливать сервак . Вроде норм работала раньще и перестала
PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
а если совсем пойти по тяжелой
PHP:
$ctx = stream_context_create(array('http'=>
                array(
                    'timeout' => 10,
                )
            ));
            echo  @file_get_contents('http://cat.hr0d0.ru', false, $ctx);
?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху