Ошибка регистрации php – error_reporting (0), не имеющий желаемого эффекта

У меня есть довольно простая страница, которая извлекает URL-адрес и анализирует некоторые данные.

Я создал на моей странице некоторую обработку ошибок в случае, если ответ является ошибкой 404.

Тем не менее, я не могу заставить PHP игнорировать следующие ошибки

  Предупреждение: file_get_contents (http://url-to-retrieve.com/123.html) [function.file-get-contents]: не удалось открыть поток: HTTP-запрос не удался!  HTTP / 1.1 404 Не найден в /var/www/html/maickl/procs/get.php в строке 84

 Примечание: Неопределенное смещение: 0 в /var/www/html/maickl/procs/get.php в строке 91

Я начинаю страницу с

 error_reporting (0)

Любые предложения относительно того, почему это происходит, почему эти ошибки не подавляются (кажется, только на этой странице), и что я могу с этим сделать?

Использование error_reporting(0); shoud отключить отчет об ошибках, что означает, что вы не должны получать эту ошибку – вы уверены, что она не включена снова?

Но на самом деле вы, вероятно, ищете не для изменения error_reporting , а для отключения display_errors , который может быть выполнен с использованием некоторого кода, подобного этому:

 ini_set('display_errors', 'Off'); 

С этим :

  • ошибки / предупреждения не будут отображаться на вашем веб-сайте, что приятно для конечных пользователей (технические ошибки никогда не должны отображаться)
  • но error_reporting не отключен, что означает, что ошибки могут / будут по-прежнему регистрироваться – см. log_errors и error_log .

Также помните, что если вы задали определенную пользователем функцию обработчика ошибок, то параметры error_reporting() полностью игнорируются.

Отключение отчетов об ошибках – один из способов сделать это, но я бы предложил просто исправить ошибку или добавить соответствующую обработку ошибок.

 try { //try to do the following $content = file_get_contents('file/to/try.txt'); } catch (Exception $e) { //do this in case of an error die($e->getMessage()); }