Скрипт для вывода ошибок на PHP. Вывод всех типов ошибок. — PROG-TIME

Скрипт для вывода ошибок на PHP. Вывод всех типов ошибок.

21.06.2018

При разработке сайта часто возникает ситуация, когда страница отображается некорректно или вовсе показывает пустой экран. В большинстве случаев это связано с ошибками в PHP-коде. По умолчанию на многих хостингах вывод ошибок отключён, поэтому их нужно включать вручную.

В этой статье разберём, как сделать простой и эффективный скрипт для отображения ошибок в PHP.

Зачем нужен вывод ошибок

Вывод ошибок помогает:

  • быстро находить синтаксические ошибки;
  • видеть предупреждения и уведомления;
  • диагностировать проблемы в логике программы;
  • избежать «белого экрана» без объяснений.

При этом важно помнить, что на рабочем сайте ошибки обычно скрывают, чтобы не раскрывать внутреннюю информацию.

Базовый скрипт для вывода всех ошибок

Самый простой способ — включить отображение ошибок прямо в начале PHP-файла:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
?>

Что делает этот код:

  • error_reporting(E_ALL) — включает отображение всех типов ошибок
  • display_errors — показывает ошибки в браузере
  • display_startup_errors — показывает ошибки при запуске PHP

Такая конфигурация используется для отладки и разработки.

Частичное отображение ошибок

Иногда нужно скрыть незначительные уведомления (Notice):

<?php
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', 1);
?>

Это позволяет видеть важные ошибки, но не засорять вывод мелкими предупреждениями.

Скрипт-обёртка для отладки

Если основной файл не работает (например, белый экран), можно использовать отдельный файл для запуска:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);include 'index.php';
?>

Этот подход позволяет увидеть ошибки даже в случае критических сбоев.

Пользовательский обработчик ошибок

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

<?php
function customError($errno, $errstr, $errfile, $errline) {
echo "Ошибка: [$errno] $errstr - $errfile:$errline";
}set_error_handler("customError");echo $test; // вызовет ошибку
?>

Такой подход позволяет:

  • форматировать вывод ошибок
  • логировать их
  • обрабатывать по своим правилам

Логирование ошибок

На продакшене лучше не выводить ошибки на экран, а записывать их в файл:

<?php
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', 'error.log');
error_reporting(E_ALL);
?>

Преимущества:

  • безопасность
  • возможность анализа ошибок
  • отсутствие лишней информации для пользователя

Типичные ошибки

  1. Белый экран
    Обычно означает критическую ошибку — нужно включить display_errors.
  2. Ошибки не отображаются
    Возможные причины:
  • отключён display_errors
  • ограничения хостинга
  • ошибка возникает до выполнения кода
  1. Использование @
    Оператор @ подавляет ошибки и усложняет отладку.

Когда включать и выключать ошибки

Рекомендуемый подход:

  • разработка — включены все ошибки
  • продакшен — ошибки скрыты, включено логирование

Это баланс между удобством разработки и безопасностью.

Итог

Скрипт для вывода ошибок в PHP — это обязательный инструмент при разработке. Он помогает быстро находить проблемы и понимать, что происходит в коде.

Минимальный рабочий вариант:

error_reporting(E_ALL);
ini_set('display_errors', 1);

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