Я использую CodeIgniter и добавил следующие строки в свой index.php:
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', $_SERVER['DOCUMENT_ROOT'] . '/php_errors.log');
Однако по какой-то причине PHP все равно всегда отображает предупреждения/ошибки и не создает журнал в доступном для записи каталоге. Я знаю, что приведенный выше код работает, потому что, если я удалю часть «^ E_NOTICES» и повторю отправку, я увижу массу уведомлений. Я также бросил оператор die() после приведенного выше кода, чтобы убедиться, что он попал. Наконец, я проверил всю кодовую базу, чтобы убедиться, что «display_errors» не используется позже в коде, перезаписав мое значение 0.
Есть ли что-то еще, что я мог упустить, что мешает мне остановить отображение ошибок?
PHP_INI_USER
илиPHP_INI_ALL
. В противном случае вы не сможете изменить их из своего скрипта. - person crackmigg   schedule 12.02.2013ini_set
должны быть строками, ваш второй аргумент — целое число. Я понятия не имею, имеет ли это значение, но вы можете попробовать поставить кавычки вокруг 0. - person kba   schedule 12.02.2013