2010-07-21 50 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