《PHP實(shí)例:詳解PHP錯(cuò)誤日志的獲取方法》要點(diǎn):
本文介紹了PHP實(shí)例:詳解PHP錯(cuò)誤日志的獲取方法,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
在PHP中錯(cuò)誤日志的獲取辦法有很多種,下面我給大家簡(jiǎn)單介紹下遇到此類問(wèn)題如何解決,下面通過(guò)代碼給大家展示下,希望能夠幫助到大家.PHP編程
<?php error_reporting (0); register_shutdown_function($err = 'my_error_handler') OR set_error_handler($err,E_ALL); // 同時(shí)注冊(cè)兩個(gè)函數(shù). // 函數(shù)參數(shù)錯(cuò)誤 $original = unserialize ( array(423142,2134234)); // 不可對(duì)0除 echo 1/0; // 不存在的數(shù)組索引 echo $_GET['aa']; // 不存在的常量 PHP_E; // 不存在的變量 echo $var; // 函數(shù)參數(shù)錯(cuò)誤 strlen(array(2434)); // 函數(shù)參數(shù)錯(cuò)誤 md5(array(1)); // 用戶自定義錯(cuò)誤 trigger_error('safdds',E_USER_NOTICE); // 不存在的函數(shù) php中斷 // tes(); // 不存在的辦法 php中斷 $ts = new afsd(); function my_error_handler($errno=0 ,$errstr=0 , $errfile=0 ,$errline=0){ if($errno && $errfile){ if(true){ $earr = array(); $earr['type'] = $errno; $earr['message'] = $errstr; $earr['file'] = $errfile; $earr['line'] = $errline; } }else{ $earr = error_get_last(); } echo '<pre>'; print_r($earr); return array(); }
對(duì)于php錯(cuò)誤, 我們一定要認(rèn)識(shí)清楚, 類型分幾種, 什么時(shí)候觸發(fā), 返回值是什么.PHP編程
如果不區(qū)分警告, 錯(cuò)誤, 建議,提示等細(xì)類型種類, 那我們可以理解php錯(cuò)誤類型共有兩種:PHP編程
?? 一種是強(qiáng)制中斷程序錯(cuò)誤.? 如錯(cuò)誤, 辦法不存在等. 內(nèi)存不足, 超時(shí)PHP編程
?? 一種是非中斷式錯(cuò)誤. 如警告, 提示這些PHP編程
其中獲取中斷程序錯(cuò)誤需要使用register_shutdown_function函數(shù), 注冊(cè)一個(gè)內(nèi)存函數(shù), 然后里面取得錯(cuò)誤信息, 這種辦法僅能獲取到首次的錯(cuò)誤行, 如多個(gè)不存在的函數(shù)時(shí), 它只能獲取到首次的那個(gè)錯(cuò)誤. 這其實(shí)也有好處, 你修復(fù)一個(gè), 它就會(huì)移至下一個(gè).PHP編程
非中斷式錯(cuò)誤, 如果用:register_shutdown_function, 那會(huì)變得異常難操作, 僅僅能獲取首次的提示或者警告, 這時(shí)我們需要set_error_handler, 每一次觸有error level constants, 都會(huì)調(diào)用錯(cuò)誤函數(shù)一次, 也就可以在里面獲取錯(cuò)誤日志.? 不過(guò)此函數(shù)會(huì)承接 error_get_last 函數(shù), 所以你會(huì)發(fā)現(xiàn)error_get_last返回為空, 全部由參數(shù)傳入了.PHP編程
兩個(gè)函數(shù)一起運(yùn)用, 即可獲取到程序的99%的錯(cuò)誤, 這對(duì)于php程序來(lái)說(shuō), 算是雪中送打火機(jī)了.PHP編程
試試運(yùn)行上面的示例吧.
PHP編程
通過(guò)代碼和文字相結(jié)合對(duì)PHP中錯(cuò)誤日志的獲取辦法的整理,希望對(duì)大家在今后的工作中遇到此類問(wèn)題有所幫助.PHP編程
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP實(shí)例:詳解PHP錯(cuò)誤日志的獲取方法》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/9443.html