2010-04-23 44 views
2

我最近遷移到PHP 5.3.2,並意識到我無法關閉我的網站現在通知錯誤。我去爲php.ini,並在這些行:無法關閉在PHP 5.3.2中的通知錯誤

; Common Values: 
; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.) 
; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices) 
; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) 
; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.) 
; Default Value: E_ALL & ~E_NOTICE 
; Development Value: E_ALL | E_STRICT 
; Production Value: E_ALL & ~E_DEPRECATED 
; http://php.net/error-reporting 
error_reporting = E_ALL & ~E_NOTICE 

...我試過設置的一切(和我重新開始,每次Apache)的,但我無法擺脫公告。

我能夠擺脫通知錯誤的唯一方法是通過設置:

display_errors = Off 

那是當然的,不是我能做到,因爲我需要看的錯誤來解決這些問題,並我想查看我編碼的網頁上的錯誤,而不是將它們記錄在某處。

有人可以幫忙嗎?這是PHP 5.3.2中的錯誤還是我做錯了什麼?

非常感謝您的時間!

P. S.另外,有誰知道我怎麼可以得到PHP 5.3.2來支持.php3擴展?

回答

3

好吧,我想出了什麼問題。我在我的代碼中設置了error_reporting,它覆蓋了php.ini error_reporting。

現在,同樣的東西在工作,直到我升級到PHP 5.3.2的原因是這一點 - 在我的代碼,我設定error_reporting命令:

的error_reporting(6143);

我應該把它設置爲:

的error_reporting(E_ALL^E_NOTICE);

我猜測6143的含義在PHP 5.3.2與4.1(或任何我的早期版本)相比有所不同。

對於PHP3擴展,它是在/etc/httpd/conf.d/php.conf文件中設置:

AddHandler的PHP5腳本.PHP .php3

將AddType text/html .php

謝謝你,sourcez,爲你的建議!

+0

'E_NOTICE'的值是4,它在6143級(這恰好是PHP 5.2.x中的'E_ALL'的值:它和E_ALL唯一的區別在PHP 5.3.x是6143 *排除了兩種新引入的模式:E_DEPRECATED和E_USER_DEPRECATED,但是由於它們在5.2.x中不存在,所以這很不重要)。所以這個改變並不能解釋你觀察到的行爲。 – eggyal 2016-07-09 07:03:55

+0

謝謝..幫助.. !! – 2017-04-11 10:20:11

0

我今天在我的網站上也面臨着同樣的錯誤,我使用TCPDF庫來生成PDF文件。它工作正常,但突然我今天開始得到以下錯誤

Severity: 8192 
Message: Imagick::clone method is deprecated ..... 

可能是託管服務提供商更新PHP或Imagick。 PHP - 5.4和Imagick - 3.x的

所以,在我的代碼擺脫這一點,我將使用error_reporting爲

error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED); 

這會顯示錯誤,但不是過時的通知。同時,我可以更改我的代碼以支持新版本的Imagick。