Приднестровская поддержка XOOPS
Задать степень обработки и протоколирования ошибок позволяет директива error_reporting в файле php.ini:
error_reporting = E_ALL & ~E_NOTICE
Перечислим значения директивы: E_ALL (все ошибки), E_ERROR (фатальные ошибки), E_RECOVERABLE_ERROR, E_WARNING (предупреждения времени выполнения), E_PARSE (синтаксические ошибки), E_NOTICE (замечания, например, о том, что переменная не инициализирована), E_STRICT, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE.
Знак ~ (тильда), указанный перед значением, свидетельствует о том, что вывод сообщений об ошибке данного типа выключен.
В директиве можно использовать следующие двоичные побитовые операторы:
□ & — двоичное И;
□ | — двоичное ИЛИ.
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
Если доступа к файлу php.ini нет (на виртуальном хостинге доступа точно не будет), то в сценарии можно использовать функцию error_reporting():
error_reporting(E_ALL & ~E_NOTICE);
В качестве параметра функции error_reporting() можно указать число:
□ в PHP 5.2:
6135 = E_ALL & ~E_NOTICE
6143 = E_ALL
8183 = E_ALL & ~E_NOTICE | E_STRICT
8191 = E_ALL | E_STRICT
□ в PHP 5.3:
30711 = E_ALL & ~E_NOTICE
30719 = E_ALL
32759 = E_ALL & ~E_NOTICE | E_STRICT
32767 = E_ALL | E_STRICT
Предыдущий пример можно заменить на следующий код:
error_reporting(6135); // в PHP 5.2
error_reporting(30711); // в PHP 5.3
На виртуальном хостинге принято не выводить ошибки в Web-браузер, а записывать их в журнал ошибок error.log. В этом случае при возникновении фатальной ошибки пользователь увидит белый экран, а не сообщение об ошибке.
Отключить вывод ошибок в Web-браузер позволяет директива display_errors в файле php.ini:
display_errors = Off
А включить вывод сообщений об ошибках в журнал ошибок позволяет директива log_errors:
log_errors = On
Задать путь к файлу, в который будут выводиться ошибки, позволяет директива error_log:
error_log = 'C:/php5/err.txt'
Изменить эти директивы из скрипта можно с помощью функции ini_set():
error_reporting(E_ALL);
ini_set('display_errors', 'Off');
ini_set('error_log', 'err.txt');
ini_set('log_errors', 'On');
$file = fopen('file.txt', 'r');
Отправитель | Нити |
---|
9 пользователь(ей) активно (5 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 9 далее... |