我有一个非常旧的系统运行旧的PHP版本。为了检查网站,我必须压制所有错误,警告,不推荐等消息。不幸的是,整个系统的代码中有很多ini_set("display_errors", "1");
。
无论php脚本调用什么,都可以抑制一切吗?也许使用php.ini或htaccess?
我已经在php.ini中禁用了“display_errors”。但那并没有帮助。
答案 0 :(得分:0)
要获得最佳的错误记录体验,请将error_reporting设置为-1
,关闭display_errors
,然后设置自定义error_log
位置,使其不与其他网站混合使用可能正在建设中。
执行此操作后,您应该找到并删除显示错误ini_set()调用。
然后在终端中输入tail -f /path/to/error_log
。您的通知,警告和错误现在将实时滚动过去,而不会扭曲您的网页显示。
通过这种方式,您仍然可以在更整洁的日志格式中看到需要重构/修复的内容,但页面上没有乱七八糟的东西!
答案 1 :(得分:0)
不会发现搜索和注释掉所有ini_set("display_errors", "1");
个调用特别令人生畏,但替代方法是编写自定义错误处理程序(或编辑现有错误处理程序):
<?php
ini_set('display_errors', 1);
error_reporting(-1);
function ignore_errors($errno, $errstr, $errfile, $errline){
// Optional error processing
return true;
}
$foo++;
set_error_handler('ignore_errors');
$bar++;
Notice: Undefined variable: foo in C:\...\scratch_7.php on line 11
如果有太多的入口点,您可以随时在主php.ini
文件中使用auto_prepend_file指令调用外部文件。