Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止将php错误消息打印到浏览器_Php_Linux_Netbeans_Error Handling_Apache - Fatal编程技术网

停止将php错误消息打印到浏览器

停止将php错误消息打印到浏览器,php,linux,netbeans,error-handling,apache,Php,Linux,Netbeans,Error Handling,Apache,我正在使用PHP5.3、CentOS 6.2、HTTPD2.2.15和NetBeans 7.0.1(通过ftp远程运行) 我想停止向浏览器打印错误消息,它打印到httpd的错误日志就足够了 我认为通过尝试/捕获,我可以自己决定如何处理错误,但它仍然会打印到错误日志和浏览器中 function smic_gettext($phrase){ try{ $tr_text = $this->language_array[$phrase];

我正在使用PHP5.3、CentOS 6.2、HTTPD2.2.15和NetBeans 7.0.1(通过ftp远程运行)

我想停止向浏览器打印错误消息,它打印到httpd的错误日志就足够了

我认为通过尝试/捕获,我可以自己决定如何处理错误,但它仍然会打印到错误日志和浏览器中

function smic_gettext($phrase){

        try{
            $tr_text = $this->language_array[$phrase];

        } catch(Exception $e){
            error_log("Couldn't find any entry in the translation file for ".$phrase.". ".$e);
            return $phrase;

        }

        return $tr_text;
    } 
我应该如何配置以停止此行为


我已经尝试在php.ini中设置display_errors=Off和display_errors=0。没有区别(我确实重新启动了httpd)

尝试将以下内容添加到脚本顶部:

ini_set('display_errors',0);

这应该将错误报告设置为“无”,并覆盖servers php.ini设置(有时会忽略错误报告(0))

请参见
显示错误
指令


是否将PHP错误发送到浏览器由PHP.ini设置决定:
显示错误
。将其设置为
Off
,以避免输出。此文件通常位于
/etc/php.ini
/etc/php5/php.ini
下。您需要将php.ini设置更改为
关闭
0
。您可以在实际的php.ini中使用.htaccess文件执行此操作,也可以在脚本开始时调用:

ini_set('display_errors', '0');

在php.ini中,您可以保留系统日志错误,但不向浏览器写入任何内容。

如果要隐藏错误和警告,还可以设置错误处理程序


请参见

FWIW,而
display\u errors=off
是正确的配置文件行,正如其他人所说,在DreamHost(可能是其他安装)上,它会进入

$HOME/.php/phprc


而不是php.ini(它可能也可以工作,但DreamHost——还有其他可能——支持phprc)。

如果错误只出现在一行中,则可以通过在该行的开头添加符号@来防止错误显示

@您的\u自定义\u命令

例如:

@file_get_contents('custom_file.txt');

生产环境应该在
PHP.ini
文件中禁用PHP错误/通知,并且只记录到日志文件端注意:PHP中的错误不是异常(例如Java),但有一种方法可以将其转换为异常并相应地处理。请参阅@DaveRandom OP,他在CentOS上,而在CentOS上,这通常是路径。我希望对所有脚本都这样做,因此配置php.ini似乎是最好的方法。我确实尝试过display\u error=Off和display\u error=0,重新启动httpd,但没有区别。应该是display\u errors(复数),而不是error。如果这只是一个输入错误,并且display_errors设置为Off,请确保脚本中没有“overruling”display_错误(例如,使用其他人建议的ini_set方法),并且在.htaccess文件中没有类似于
php_flag display_errors Off
的内容(如果您有),只是在我的评论中我把它变成了单数(不能再更新了)。我没有使用任何.htaccess文件。将错误报告设置为0也不会导致记录任何错误。我不建议在生产环境中这样做。设置
ini\u集('display\u errors',0)应该足够了。Mchl和klennepette,谢谢你们的帮助。Nicsoft,他们是对的,只是ini_集('display_errors',0);我想对所有脚本都这样做,所以配置php.ini似乎是最好的方法。我确实尝试过display\u error=Off和display\u error=0,重新启动了httpd,但没有区别。您尝试过“display\u error”,但关键字是“display\u errors”,很抱歉,这不仅仅是我评论中的一个输入错误,我使用了display\u errors。您检查过了吗,文件中没有出现其他“display\u errors”?这非常令人尴尬。。。有重复的显示错误条目。我想是时候休息一下了。谢谢!我希望对所有脚本都这样做,因此配置php.ini似乎是最好的方法。我确实尝试过display_errors=Off和display_errors=0,重新启动了httpd,但没有什么不同。谢谢,这帮了大忙。
@file_get_contents('custom_file.txt');