當前位置:
首頁 > 知識 > 「PHP」最詳細PHP從入門到精通(五)——PHP錯誤處理

「PHP」最詳細PHP從入門到精通(五)——PHP錯誤處理


PHP從入門到精通

之PHP中的字元串

在創建腳本和 web 應用程序時,錯誤處理是一個重要的部分。如果您的代碼缺少錯誤檢測編碼,那麼程序看上去很不專業,也為安全風險敞開了大門。

本教程介紹了 PHP 中一些最為重要的錯誤檢測方法。

我為大家講解不同的錯誤處理方法:

PHP中的錯誤處理

1、PHP的錯誤級別:見表格。

2、調整PHP錯誤報告級別:

PHP中,調整錯誤報告級別的方式有兩種:

①修改PHP.ini文件的配置項。

a、會導致在當前伺服器環境下所有PHP文件都受其影響。

b、如果代碼更換伺服器,會導致配置文件全部失效,需要重新配置。

所以實際開發過程中,並不推薦使用此方式!!

②在代碼中使用ini_set函數,動態的修改php.ini文件的配置項;(get為獲取配置項)

①display_errors:開啟或關閉所有錯誤級別報告;

可選值:1/On表示開啟所有錯誤報告功能; 0/Off表示關閉所有報告;

默認開啟,而且強烈建議開啟!!

代碼實例:

ini_set("display_errors","0");---->關閉錯誤報告功能;

②error_reporting:設置那些錯誤可以進行報告; 有兩個函數可以設置:ini_set和error_reporting;

代碼示例:

ini_set("error_reporting",E_ALL);報告所有級別;
error_reporting("E_ALL & ~E_NOTICE");不報告notice級別,其他均正常報告;

3、使用錯誤日誌,記錄出現的錯誤;

①使用日誌文件記錄:

使用error_log函數將錯誤信息輸出到日誌文件中。默認的日誌文件在wamp中的log文件夾下,php_error.log文件;

代碼示例:

ini_set("error_log","E:/text.txt");//設置日誌文件地址;
error_log("出錯了!!!");//列印一句錯誤信息;

error_log("這是一個PHP錯誤",3,"E:/textLog.text");//直接將錯誤信息列印到指定文件中;

②寫進Windows系統日誌中:

代碼示例:

ini_set("error_log", "syslog");//設置日誌記錄到系統日誌;
error_log("系統日誌出錯");//使用日誌報錯時,將自動進入系統日誌;

4、trigger_error:自定義一個錯誤;會像系統錯誤一樣。產生報錯。

參數①:錯誤的信息內容;

參數②:錯誤的級別。常選E_USER_NOTICE E_USER_WARRING E_USER_ERRORS;

5、自定義錯誤處理函數:

①聲明一個錯誤處理函數function func{}

②使用set_error_handler("func");設置,當文件出現錯誤時,不再使用系統自帶的錯誤提示功能,而是調用我們自定義的函數。

所以可以在聲明函數時,接受錯誤信息,具體處理。

實例展示:

ini_set("display_errors", 1);
$errMessage="";
function errorHandler($type,$message,$file,$line){
global $errMessage;
switch ($type) {
case E_NOTICE:
$errMessage .= "發生了沒有什麼卵用的小bug,就不用處理了

";
break;
case E_WARNING:
$errMessage .= "出錯啦!!!";
$errMessage .= "錯誤類型是:{$type}";
$errMessage .= "錯誤信息是:{$message}";
$errMessage .= "錯誤發生的文件是:{$file}";
$errMessage .= "錯誤發生的行號是:{$line}";
$errMessage .= "

";
break;
case E_ERROR:
echo "";
break;
default:
echo "";
break;
}

}
set_error_handler("errorHandler");

//ini_set("error_reporting",E_ALL);
//error_reporting(E_ALL & ~E_NOTICE);
ini_set("error_log", "syslog");
error_log("這是一個PHP錯誤",3,"E:/textLog.text");
echo $num;
//trigger_error("22222222",E_USER_NOTICE);//自定義一個錯誤,上述函數未接受,因此會進入default;
echo "11111";
echo "
-------------------------------------------------
";
echo $errMessage;

本期分享就到這裡,下期再見。覺得內容對你有所幫助的朋友請點推薦,歡迎大家在評論下方評論區與博主互動,謝謝大家!

未完,待續。。。

更多精彩內容,敬請關注 Q的前端世界的技術博客。

「PHP」最詳細PHP從入門到精通(五)——PHP錯誤處理

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

vue2.0引入騰訊地圖
jsPlumb之流程圖項目總結及實例
geotrellis使用(二十九)遷移geotrellis至1.1.1版
14:40-15:00博客站點web伺服器雪崩似的CPU 100%

TAG:達人科技 |

您可能感興趣

配置錯誤的Tor站點通過SSL證書暴露公共IP地址
HTTP狀態碼介紹,以及HTTP錯誤代碼的故障修復?
NVIDIA新驅動:改善3款遊戲表現 修復G-SNYC錯誤
NVIDIA推新驅動:改善3款遊戲表現,修復G-SNYC錯誤
CoinGeek聲明:更改BCH協議是BCH獲得大規模採用的錯誤方式
CPU-Z 1.85版發布:修復WinXP初始化錯誤
用戶反映部分2018款MBP和iMac Pro出現內核錯誤問題
Google Play出現DF-DFERH-01錯誤的分析與修復
微軟開始修復WIN10 Mobile用戶在Edge上無法打開PDF文件的錯誤
RFC7807:API錯誤處理最佳實踐
Facebook推出API限制,公開屏蔽錯誤
Raf Simons的改造是個「錯誤」?Calvin Klein表現疲軟令母公司 PVH集團最新季度表現不及預期
Perl 錯誤處理
XML DOM 解析器錯誤
Nvidia宣布取消GPP夥伴計劃,稱遭到錯誤解讀
谷歌要「滅掉」URL|暗網站點配置錯誤暴露公共IP地址|美國DHS計劃更新網路事件報告指標
Sierra補充更新解決了MBP爆音和內核錯誤
外媒:蘋果最大的錯誤是放棄iPhone SE
取消iPhone SE 是蘋果最近幾年犯下的最大錯誤
修復:Windows 10計算機上的HTTP錯誤400