PHP 確實不會輸出錯誤堆棧,但通過函數(shù),還是能夠獲取到錯誤堆棧的。
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的陽新網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
function getBacktrace() {
ob_start();
debug_print_backtrace();
return ob_get_clean();
}
調(diào)用上面這個函數(shù)取得錯誤堆棧,再用 file_put_contents('log_path', FILE_APPEND); 寫入日志文件即可。
還有一個辦法:為 PHP 安裝 xdebug 擴展
windows 下的安裝方法 安裝好后,修改 php.ini
(1)使用echo ,簡單輸出
(2)使用print_r(),可以有規(guī)則的打印復雜結構
(3)var_dump遞歸輸出某種結構體
(4)print(),簡單打印
可以將你要輸出的錯誤內(nèi)容放到上述語句或函數(shù)內(nèi)進行打印輸出;也可以寫入某個文件,作為你的Log日志:file_put_contents('/test1.txt',$value['value'],FILE_APPEND)等這類文件函數(shù)
以上是我自己工作中總結的PHP調(diào)試方法,挺好用的。
所謂的日志就是記錄系統(tǒng)運行狀態(tài)的數(shù)據(jù)。
一般是將信息記錄到文本文件或數(shù)據(jù)庫中。
比如:
?php
function writeLog($msg){
$logFile = date('Y-m-d').'.txt';
$msg = date('Y-m-d H:i:s').' '.$msg."\r\n";
file_put_contents($logFile,$msg,FILE_APPEND );
}
//調(diào)用上面的函數(shù),寫一條信息進日志文件
writeLog('這是測試日志信息');
?
要捕獲錯誤的話,一般都要自己封裝一下
代碼示例:
?php
//error handler function
function customError($errno, $errstr, $errfile, $errline)
{
echo "bCustom error:/b [$errno] $errstrbr /";
echo " Error on line $errline in $errfilebr /";
echo "Ending Script";
die();
}
//set error handler
set_error_handler("customError");
$test=2;
//trigger error
if ($test1)
{
trigger_error("A custom error has been triggered");
}
?
輸出:
Custom error: [1024] A custom error has been triggered
Error on line 19 in C:\webfolder\test.php
Ending Script
具體參考: