php怎麼偵錯錯誤

2020-10-15 12:00:37

php偵錯錯誤的方法:首先啟動錯誤報告;然後使用print語句偵錯程式;最後通過字首字元「@」遮蔽PHP指令碼錯誤提示即可。

推薦:《》

php錯誤偵錯

一、php錯誤級別

一般來說,php錯誤有三個級別:notice、warning、error。

1、notice:notice錯誤可能是指令碼執行時導致的,也可能是在正常執行過程中出現的。實際上這也許是程式碼的缺陷,因為PHP對其解釋可能與程式碼的本義有所不同。

2、warning:是一個非致命性地錯誤,在程式碼執行時候產生。它們並不是致命的錯誤,不會停止指令碼的執行。

3、error:說明出現了致命的錯誤,會導致指令碼執行停止。PHP執行的任何階段都有可能出現這種錯誤。包括初始化、解析和執行程式碼階段。

二、啟動錯誤報告

1、修改php.ini

display_errors=On
error_reporting = E_ALL & ~E_NOTICE

2、重新啟動Apache伺服器

三、使用print語句偵錯程式

1、程式碼

<form name="form1" method="post" action="">
  <input name="txt_key" type="text" id="txt_key">
  <input type="submit" name="Submit" value="搜尋">
</form>
<?php
if($_POST[Submit]=="搜尋"){
$key=$_POST[txt_key];//獲取文字方塊的值
print $key;
}
?>

2、執行結果

四、應用字首字元@遮蔽PHP指令碼錯誤提示

1、程式碼

<?php
$file="book.php";//定義操作檔案 
@fread($file) or die("檔案讀取失敗!"); 
fclose($file); 
echo "我不能被輸出了!程式執行後,字首字元@後面的命令不被顯示!";
?>

2、執行結果

檔案讀取失敗!

五 使用錯誤處理器記錄紀錄檔

1、設定php.ini,然後重新啟動Apache伺服器

error_log = D:\AppServ\php5\php_errors.log

2、程式碼

<?php
function err_log($error,$error_str){//自定義一個錯誤處理常式
$file="php_error.log";
if(filesize($file)>1024){//如果紀錄檔檔案大於1024KB
rename($file,$file.(string)time());//以時間為準繩對紀錄檔檔案進行重新命名
clearstatcache();//清除檔案狀態快取
}
error_log($error_str,0,$file);//將出錯資訊記錄到管理員所指定的路徑
}
set_error_handler('err_log');//執行自定義函數log_roller()函數
trigger_error(time().":程式報錯.\n");//發出錯誤資訊
restore_error_handler();//重新編譯這個預錯處理的函數
?>

3、執行結果

開啟php_errors.log檔案

[09-Apr-2017 13:46:52 Asia/Hong_Kong] 1491716812:程式報錯.

以上就是php怎麼偵錯錯誤的詳細內容,更多請關注TW511.COM其它相關文章!