標籤:內容 日誌 開啟 機制 層級 文法 php指令碼 報錯資訊 資訊
一、 錯誤處理:
a)在寫程式的過程當中,遇到錯誤時,你的反應?可能比較急躁,比較煩
b)遇到錯誤後:一別哭,二別鬧,三別上吊,四別尿……
二、你可能會遇到的錯誤:
a)語法錯誤
i.語法錯誤是最容易排除的錯誤,通常在報錯行前後看看,就可以解決
b)運行時的錯誤
i.運行時的錯誤,不是特別容易排除,需要仔細檢查
c)邏輯錯誤
i.邏輯錯誤,最難以排除!
三、解決報錯問題的方法:
a)輸出法調試:
i.在編寫程式的過程當中,我們應當邊寫邊調試,能夠有效避免邏輯錯誤的出現!
b)斷點法調試:
i.在程式的某個位置使用die或exit文法進行指令碼的終端,然後配合輸出法進行程式的調試!
c)刪除法(注釋法)調試:
i.將多餘的代碼進行刪除或注釋,再去判斷執行結果是否正確
d)最佳解決方式:
i.還是輸出法,就是我們邊寫邊輸出!
四、Php當中錯誤層級:
a)E_NOTICE 層級的錯誤(好比你的右手擦破點皮兒)
i.NOTICE層級的錯誤,最容易排除,而且是層級最低的錯誤,它不會影響程式執行,只會提示一個內容;
b)E_WARNING層級的錯誤(好比你的右手骨折了,但是你還有左手啊!)
i.WARNING層級的錯誤,比較容易排除,報錯行不再輸出,不會影響整個指令碼執行;
c)E_ERROR 層級的錯誤(相當於腦袋掉了,腦袋掉了之後啥事兒都幹不了了!)
i.FATAL層級的錯誤,會直接終止整個指令碼執行,相對容易排除!
d)E_ALL 所有的錯誤和提示內容!
五、在php當中控制錯誤層級的兩種方法:
a)在設定檔當中(php.ini)
i.搜尋 error_reporting = E_ALL,該選項是用來設定php當中錯誤顯示的方式
ii.必須要認識的符號:
1.&:並且
2.|:或者
3.~:除了
4.Error_reporting = E_ALL &~ E_NOTICE &~ E_WARNING &~ …
5.設定php錯誤顯示所有錯誤,但是除了NOTICE層級的錯誤
iii.在php.ini當中設定的錯誤層級顯示會作用於整個伺服器!
b)在當前指令碼當中
i.使用 error_reporting() 函數
ii.error_reporting(E_ALL &~ E_NOTICE &~ E_WARNING &~ E_ERROR);
iii.在當前指令碼的最上方添加上述語句,可以控制當前指令碼的錯誤顯示
iv.推薦,作用範圍只是當前設定錯誤層級的指令碼!
c)通過一項設定可以直接讓所有的錯誤不再顯示!
i.Display_errors 在設定檔搜尋該選項display_errors = On 會出現這個結果,我們可以將On修改為 Off即可實現錯誤提示關閉
d)在PHP指令碼當中可以對設定檔當中的選項進行一些設定:
i.Ini_get_all();可以擷取所有我們能夠在php指令碼當中設定的配置項
ii.Ini_get(配置名);擷取指定的配置項資訊
iii.Ini_set(配置名,配置值);在指令碼當中設定配置項的資訊
六、錯誤記錄檔:
a)在生活當中的很多地方,都應用到了這種日誌記錄,例如:航海日誌,飛機上的黑匣子,php當中的錯誤記錄檔檔案等等
b)錯誤記錄檔的儲存位置:
i.Wamp -> logs -> php_error.log 這就是php的錯誤記錄檔檔案
c)設定錯誤記錄檔開啟:
i.Php.ini當中搜尋log_errors = On,預設開啟,如果改為Off說明關閉日誌儲存錯誤資訊!
d)修改錯誤記錄檔的儲存位置
i.在php.ini當中搜尋 error_log
ii.error_log ="D:/Wamp/logs/php_error.log",位置可以自己定義
e)真正的項目在上線運營之前,需要查看錯誤記錄檔設定的情況:
i.開發環境:允許報錯!
ii.測試環境:允許報錯!
iii.上線運營:不能報錯!
1.要上線運營的項目,錯誤記錄檔需要進行如下設定
a)Display_errors = Off設定報錯資訊不再指令碼中顯示
b)Error_reporting = E_ALL 設定php報錯機製為所有層級的錯誤!
c)Log_errors = On開啟錯誤記錄檔記錄
d)Error_log = “設定你要儲存錯誤記錄檔的位置!”
2.進行上面的設定之後,可以保證錯誤不再php指令碼當中出現!
【php】錯誤記錄檔處理