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

我使用PHP 5.3,CentOS 6.2,httpd 2.2.15,NetBeans 7.0.1(通过ftp远程运行)。

我想停止向浏览器打印错误消息,这足以打印到httpd的error_log。

我认为做try / catch我会决定如何处理错误,但它仍然打印到error_log和浏览器。

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; } 

我应该如何configuration才能阻止这种行为?

我曾尝试在php.ini中设置display_errors = Off和display_errors = 0。 没有区别(我没有重启httpd)。

Solutions Collecting From Web of "停止打印php错误信息到浏览器"

 display_errors = Off 

在php.ini会让你保持你的系统日志错误,但不写任何东西给浏览器。

是否PHP错误发送到浏览器由php.ini设置决定: display_errors 。 将其设置为Off以避免输出。 该文件通常位于/etc/php.ini/etc/php5/php.ini

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

 ini_set('display_errors',0); 

这应该设置错误报告为none,并覆盖服务器的php.ini设置(有时忽略你的error_reporting(0))

您需要将php.ini设置display_errors更改为off0 。 您可以在实际的php.ini中使用.htaccess文件,也可以在脚本开始时调用它:

 ini_set('display_errors', '0'); 

如果你想隐藏错误和警告,你也可以设置一个error_handler。

请参阅http://php.net/manual/function.set-error-handler.php

FWIW,而display_errors = off是正确的配置文件行,正如其他人所说,在DreamHost(nd可能其他安装),它进入

$HOME/.php/phprc

而不是php.ini(这也可能工作,但DreamHost – 也可能是其他人 – 支持phprc)。

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

@YOUR_CUSTOM_COMMAND

例:

 @file_get_contents('custom_file.txt');