2016-01-06 70 views
0

我正在用PHP設計一個API,我想知道是否有正確的方式告訴PHP不要寫任何東西(不是頭文件或課程不是文本.. .. )在迴應時通過自己的避免PHP以任何方式干擾響應

我的意思是,PHP通常直接在響應中以HTML文本的形式返回調試消息(錯誤,警告,通知......),並且如果API返回JSON並且發生錯誤(或其他),則此JSON將通過PHP消息損壞

我已經在生產模式下設置了error_reporting(0),但我不知道這是否足以避免PHP對任何事情做出響應(並因此破壞輸出),並且我想知道是否有更一般的方式告訴PHP將東西寫入日誌中,而不是將其發送爲答案...因爲理想情況下,我不想將error_reporting設置爲0,理想情況下,我想從日誌文件中讀取警告/通知,而不是在回答,因爲客戶還沒有準備好處理它。

+1

PHP通常在日誌從他們顯示在您的瀏覽器,你會將所有這些錯誤拆開,檢查你的Apache服務器(假設你正在運行它在Apache) – codeninja

+0

@codeninja如果我有'error_reporting(0)'它仍然寫在日誌中的錯誤?另外:如果我設置'error_reporting(0)',我是否100%確定PHP將永遠不會在我的答案上寫任何東西? –

+6

這個問題唯一的**正確**答案是___如果你正確地編寫你的代碼,那麼將不會有錯誤report___只有無能的___hide錯誤,而不是解決它們_ – RiggsFolly

回答

3

這樣做將設置顯示錯誤關

ini_set('display_errors',0); 

和記錄到文件

ini_set('log_errors',1); 

當然它們設置在php.ini文件中的正確方法可以幫助您有一個更好的控制生產中的內容和開發服務器中的內容。

閱讀資料這裏:

http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors

http://php.net/manual/en/errorfunc.configuration.php#ini.log-errors

+1

使用這種方法是**的incompetant的藏身之處** – RiggsFolly

+0

@CarlosNavarro所以做我這就是爲什麼我以飽滿的錯誤運行我的測試服務器上 – RiggsFolly

+0

也報告@RiggsFolly我,但可能是你沒有考慮到一些特殊情況,當用戶輸入什麼時候觸發,或者數據庫關閉或者......我想你明白了。不管你想要怎麼稱呼它,事情是在生產中出現錯誤報告是無意義的,除非你知道你的代碼是完美的。這不是我的情況=) –

相關問題