1. 程式人生 > >微信實驗七、微信PHP開發除錯技巧及原始碼下載

微信實驗七、微信PHP開發除錯技巧及原始碼下載

(>>>>在公眾號中輸入文章最後彩蛋即可獲取原始碼)

技術QQ群名稱:豆豆諮詢,群號:625686304

微信公眾號名稱:豆豆諮詢,微信公眾號:douAsk

初建日期:2017.04.11

一、實驗目的 

1、掌握微信開發PHP除錯技巧。 

二、實驗內容

1、利用程式除錯追蹤工具PHPLog php除錯程式。

2、使用die()/exit()命令。

3、使用var_dump()和print_r()命令。

4、使用Eclipse Php Neon開發環境的除錯工具。

三、實驗步驟及過程 

學會除錯程式是開發的重要內容,PHP除錯不如其它的工具除錯,特別是web網站的互動,當前PHP開發工具難以實現(如果有其它的PHP開發除錯工具,希望能夠在微信公眾號“豆豆諮詢”裡留言)。

本實驗採用不同的方法實現PHP除錯。程式執行的過程中,在相應的地方記錄你想要追蹤的變數及呼叫棧和每次函式呼叫的引數。

1、使用PHPLog php除錯工具。

PHPLog php除錯工具是鄧志義在2009/08/23於廣州書寫,我們修改了部分內容(在”豆豆諮詢”公眾號源程式下載中可以看到修改的內容)。

a. 拷貝phplog.php檔案:把phplog.php檔案放到你的站點目錄下。

b. 編輯phplog.php檔案:用編輯器開啟phplog.php,定位到20行,設定好你個人的配置。

d. 編輯想要除錯的PHP檔案:使用編輯器開啟你的PHP檔案,例如PHPDebug.php檔案,在PHPDebug.php檔案中使用phplog.php中的__log函式記錄你想要記錄的變數、物件以及其他相關的除錯資訊。例如:

l  在PHP檔案頂部輸入:require '../phplog.php';

l  在程式其他地方輸入編碼:__log('Hello 豆豆');

f. 檢視和編輯執行結果:在瀏覽器中輸入地址,瀏覽除錯檔案,如http://78976932.tunnel.2bdata.com/ThinkPHP/public/phplog.php,這時執行phplog.php,可以看到除錯的資訊。而且,你還可以檢視、編輯除錯資訊:在你的瀏覽器裡訪問phplog.php,將看到你剛才記錄的資訊及它的呼叫棧和引數。當你通過瀏覽器訪問執行phplog.php程式時,該程式會把整個檔案讀取分析,在頁面顯示你的所有除錯資訊,並且它會動態ajax重新整理。

注意:請不讓log檔案超過5M大小,瀏覽器可能會崩潰的。

2、使用die()/exit()命令。

die()/exit()函式都有終止執行緒的作用,應該是等價的,它們是php斷點除錯需要使用的最主要的函式,它們也是php程式設計師使用非常頻繁的函式。die()函式一般與“or”一併使用,寫作“or die()”,經常看到這樣的語句:

$file = fopen($filename, 'r') or die("抱歉,無法開啟: $filename")

解釋:如果fopen函式執行失敗,就會返回false,那麼就會執行die(),程式則會停止執行,並且顯示指定出錯資訊,以此達到除錯目的。

具體例項:

 <?php

$site = "http://www.google.com/";

fopen($site,"r") or exit("Unable to connect to$site");

?>

或者

 <?php

$site = "http://www. google.com/";

fopen($site,"r") or die("Unable to connect to$site");

?>

3、使用var_dump()print_r()命令。

1)var_dump -- 列印變數的相關資訊

void var_dump ( mixed expression [, mixed expression [, ...]] )

此函式顯示關於一個或多個表示式的結構資訊,包括表示式的型別與值。陣列將遞迴展開值,通過縮排顯示其結構。例如以下程式碼將輸出變數:

<?php

$a = array (1, 2, array ("a", "b", "c"));

var_dump ($a);

$b = 3.1;

$c = TRUE;

var_dump($b,$c);

?>

2)print_r -- 列印關於變數的易於理解的資訊

bool print_r ( mixed expression [, bool return] )

a.    print_r() 顯示關於一個變數的易於理解的資訊。如果給出的是 string、integer 或 float,將列印變數值本身。如果給出的是 array,將會按照一定格式顯示鍵和元素。object 與陣列類似。

例如:

<?php

$a = array ('a' => 'apple',

'b' => 'banana',

'c' => array ('x','y','z'));

print_r ($a);

?>

將輸出:

Array ( [a] => apple [b] => banana [c]=> Array ( [0] => x [1] => y [2] => z ) )

b.    print_r(,true):如果想捕捉 print_r() 的輸出,可使用 return 引數。若此引數設為 true,print_r() 將不列印結果(此為預設動作),而是返回其輸出。

例子:return 引數示例

<?php

$b = array ('m' => 'monkey',

'foo' => 'bar',

'x' => array ('x', 'y', 'z'));

$results = print_r ($b, true);//$results 包含輸出結果

?>

4、使用Eclipse Php Neon開發環境的除錯工具。

安裝整合開發環境,Eclipse Php Neon新建專案,然後新增PHP檔案,採用Debug as/ PHP CLI Application進入除錯環境,偵錯程式XDebug採用WAMP工具包安裝的php.exe,如上圖所示。我們可以其他整合開發工具一樣,進入斷點除錯環境。但有一個缺點,即當用戶訪問網頁時,除錯環境不能與其同步,與visual studio有一定的差距。希望未來能夠增加這個功能,實現與使用者的直接互動除錯。

四、技術服務


1、如果有疑問或者需要幫助,請加入QQ群(群名稱:豆豆諮詢,群號:625686304);或者公眾號douAsk,公眾號名稱為“豆豆諮詢”。掃描以下二維碼,關注“豆豆諮詢”

 

在“豆豆諮詢”公眾號中輸入以下彩蛋號,將獲取原始碼:

彩蛋號:1204