2010-07-21 49 views
0

我想让错误超出我的PHP输出流。我只想输出我明确回应的内容。控制PHP的输出流

看着我的php.ini,“display_errors”是我需要改变的唯一配置吗?

回答

2

而不是修改php.ini的,你可以在你的代码的一个非常早期的部分称之为:

error_reporting(0); 

注意这意味着致命的错误会悄悄地离开这个世界,所以这使得它有点难以调试首先。

+0

+1,但我认为使用'E_NONE'常量而不是int更漂亮。 – karim79 2010-07-21 12:33:42

+0

@ karim79:现在我觉得哑巴了 - 我知道*有一个常数!然而,由于某些原因,它没有记录在[PHP手册](http://www.php.net/manual/en/errorfunc.constants.php)中...... – BoltClock 2010-07-21 12:36:30

+0

@BoltClock - 你是对的!这有多奇怪! – karim79 2010-07-21 12:40:34

0

可以修改INI指令,改变标志0(假)或禁用通过网页的基础使用error_reporting页面上

error_reporting(0)

典型的生产环境应该是对display_errors = 0虽然不是所有的人都有开发和生产环境

您还可以通过将不同的值传递给error_reporting函数(或通过在php.ini中更改它的INI值)来更改错误消息的“详细程度”。可以在这里找到:PHP: Runetime Configuration - error_reporting

1

我只建议,如果我们正在谈论生产机器。 display_errors会将它们隐藏起来,但要确保你已经在php.ini中设置了log_errorserror_log,这样你就可以在常规的日志分析中看到它们(对吗?)。

对于开发机器,我建议您保留display_errorserror_reporting(E_ALL | E_STRICT),以便您看到有没有什么可疑的。

+0

我的开发环境将所有内容都报告给警告,这很好。 我只想确保我的生产环境对用户保持沉默,同时在幕后为我记录错误。 – DrANoel 2010-07-21 13:33:31

+0

@John准确的。 – Maerlyn 2010-07-21 13:36:46