PHP打印測試,PHP調試技巧


第一步:

php.ini 中,將 display_errors 設置為 On

第二步:

在 框架的 開始處,添加如下代碼:

<?php
if (isset($_GET['debug'])) {
     // ini_set('display_errors', true);
     //【注意】本來不想到 php.ini 中修改 display_errors 值,但是 在 PHP 代碼中設置 display_errors 值不起作用,悲劇!
    error_reporting(E_ALL);
    set_time_limit(0);
} else {
    error_reporting(E_ERROR);
}

 


 

以前習慣用 echo,print_r 等方法來測試PHP輸出,這樣多多少少會影響到代碼的正常運行,現改成把測試變量輸出到文本的形式,可實現日志形式的調試,代碼如下:

<?php
/**
 * 寫文件
 *
 * @param string $filename 文件名
 * @param string $text   要寫入的文本字符串
 * @param string $openmod  文本寫入模式('w':覆蓋重寫,'a':文本追加)
 * @return bool
 */
function file_write($filename = '', $text = '', $openmod = 'w') {
	if (@$fp = fopen($filename, $openmod)) {
		flock($fp, 2);
		fwrite($fp, $text);
		fclose($fp);
		return true;
	} else {
		return false;
	}
}

/**
 * 寫對象(包括 數字、字符串、數組)
 * 【注意:臨時調試用而已!】
 *
 * @param string $text		要寫入的文本字符串
 * @param string $type		文本寫入類型('w':覆蓋重寫,'a':文本追加)
 * @param bool   $isVarExport 是否變量導出
 * @return bool
 */
function write2($text = '', $type = 'a', $isVarExport = false) {
	$filename = __DIR__ . '/write2.txt';

	$text = (is_array($text) && $isVarExport) ? var_export($text, true) : print_r($text, true);
	$text = "++++++++++++++++++++++++++++++++++++++++++\r\n"
		. date('Y-m-d H:i:s') . "\r\n"
		. $text . "\r\n";

	return file_write($filename, $text, $type);
}

今后,直接用write2('xxx');函數即可。

 

另外,也可用“file_put_contents”去寫文本

$data222 = $arr;

$text222 = print_r($data222, true);
$filename222 = 'd:\My Documents\1\write.txt';
file_put_contents($filename222, $text222);

 

 

延伸閱讀:

【總結1】PhpStorm配置XDebug(遠程)調試PHP

PHP通過ini_set()來設置顯示錯誤信息和執行時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM