當前位置:首頁 » 編程語言 » 調試php程序

調試php程序

發布時間: 2022-09-13 01:47:33

A. 如何使用開發工具調試php程序

zend studio和editplus只是編輯器.你用xampp搭建好了環境 把你寫的那個php文件放到 xampp裡面apache的httpdoc目錄裡面 就可以瀏覽了

B. PHP程序如何調試

可以在Dreamweaver(推薦Dreamweaver MX 2004)中使用php,調試直接按F12,即可在瀏覽器里預覽。配製了IIS後,本機可以當作伺服器(在Dreamweaver里建立站點),即直接在本機上調試。

C. php如何單步調試

PHP本就是腳本語言,程序執行就是「單線程」。

要測試節點或者邏輯是否正確的話,只需要在你需要測試的節點echo一下信息,還可以file_put_contents()寫入日誌信息。
這樣程序執行的基本流程就可以了,這時候就可以判斷,你程序的節點邏輯是否執行正確。

D. PHP的程序是怎樣調試的呢

環境需求與准備工作
--------------------------------------------------------------------------------

在安裝 PHP 做為 WWW 伺服器的一部份時,我們可以考慮用 UNIX 作業系統;或者是 Windows NT/95 等 Win32 API 的平台。當然,大部份的人都會使用 UNIX 來當作 PHP 的執行平台 (在 Windows NT 的使用者大多數都會選擇 IIS + ASP),因此,本書的所有內容以及范常式式都是在 UNIX 上為主。實際上,Linux + Apache + PHP 應是最經濟的選擇,因為這樣的組合幾乎是不用錢的,成本與效益比這也是最好的選擇。而許多成功站台的經驗,更是採用這種組合最好的背書。
Linux 作業系統方面,您可以選擇各式的 Linux 套件,包括 Slackware Linux、RedHat、OpenLinux、SuSE....等等,反正這方面的軟體在坊間也是很容易而且很便宜就可以買到。對學生而言,也可以去各大 FTP 站下載完整的系統安裝。

Apache 伺服器則是目前最多 WWW 網站所採用伺服器。您可以至 http://www.apache.org 下載最新版的程式及相關文件,若您覺得從國外下載要很久的話,也可以用它的 Mirror 站台下載。

PHP 則可以去它的官方網站 http://www.php.net 下載所需要的程式。

雖然目前 WindowsNT 或者 Windows98 等 Win32 的作業平台也能安裝 PHP 及 Apache 伺服器,不過這似乎沒什麼道理,因為 PHP 和 Apache 在 UNIX下可以跑得更快更好。

當然,若想使用商業化的作業平台,SUN、IBM、HP、DEC、SGI、NEC 等公司都有提供相關的 UNIX 或者是 WindowsNT 的作業平台。加上高安全性調整過後的 Apache 伺服器:Stronghold 或是其它支援 SSL 的 Apache 版本。這種組合,相信能滿足商業化的需求。而 PHP 就扮演著快速方便的 CGI 角色,讓客戶對站台的服務品質更加滿意。

快速設定及安裝
--------------------------------------------------------------------------------

以下是基本的安裝動作,作業環境是 UNIX 系列的作業平台。在安裝之前,要先下載 apache_1.3.x.tar.gz 及 php-3.0.x.tar.gz 二個檔案。可以將這二個檔案放在 /usr/src 中再開始執行以下的動作。而下面每個行號後的動作都是整串字連在一起的,在這可能會分行而造成誤會。

gzip -d -c apache_1.3.x.tar.gz | tar xvf -
gzip -d -c php-3.0.x.tar.gz | tar xvf -
cd apache_1.3.x
./configure --prefix=/www
cd ../php-3.0.x
./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
make
make install
cd ../apache_1.3.x
./configure --prefix=/www --activate-mole=src/moles/php3/libphp3.a
make
make install
第一、二行利用 gzip 及 tar 加上管道功能,將壓縮解壓還原。然後在 Apache 的原始檔目錄中執行環境設定,--prefix 選項指示 Apache 的安裝目錄路徑。之後進入 PHP3 的原始檔目錄中,若沒有 MySQL 資料庫,則可省略 --with-mysql 的選項,重要的是一定要加入 --with-apache 選項,而且 Apache 原始檔的路徑要正確。設定完 PHP3 之後就編譯、安裝到 Apache 的原始檔目錄中。之後在 Apache 原始檔目錄中再加入 PHP 的模組檔。在編譯及安裝 Apache 之後就初步完成了。之後就是要設定 Apache 才能讓 Web Server 順利運作。

值得注意的是,PHP 要和任何資料庫連線,都要在執行這些動作之前先將資料庫設好,並確定 Web Server 上可以順利存取資料庫系統。若有需要其它的一些 PHP 外部模組也要先設定好這些模組。

cd ../php-3.0.x
cp php3.ini-dist /usr/local/lib/php3.ini
之後將 php3.ini 放在指定的目錄,若有需要,也可以手動修改 php3.ini 檔檔,以符合使用的要求。

在 Apache 伺服器的設定方面,要在 Apache 的設定檔 httpd.conf 或 srm.conf 檔案中加入下面的字串。告訴 Apache 伺服器,副檔名 php3 是一個特殊的程式檔案。當然副檔名可以設成別的副檔名,還有一些站台將 php 的程式副檔名設為 phtml 也是不錯的選擇,反正這就要看 Webmaster 的規劃了。

AddType application/x-httpd-php3 .php3

--------------------------------------------------------------------------------

在 PHP 4.x 版的方法大致和 PHP 3.0.x 版相同,不同的地方在於 PHP 4.x 的目錄名稱及編譯後的模組放置目錄不同。此外,內定的副檔名也由 .php3 變成了 .php。當然在安裝前還是要先下載 PHP 4.x 的程式才行。

gzip -dc apache_1.3.x.tar.gz | tar xvf -
gzip -dc php-4.0.x.tar.gz | tar xvf -
cd apache_1.3.x
./configure --prefix=/www
cd ../php-4.0.x
./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
make
make install
cd ../apache_1.3.x
./configure --prefix=/www --activate-mole=src/moles/php4/libphp4.a
make
make install
cd ../php-4.0.x
cp php.ini-dist /usr/local/lib/php.ini
在 httpd.conf 或 srm.conf 加入

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

而 PHP 4.x 版中對 Apache 伺服器加入了新的環境變數設定項。

php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
php_admin_flag [PHP directive name] [On|Off]

在 PHP 3.0.x 版中,有些目錄可能會有 .htaccess 的檔案,使用 PHP 4.0.x 版的系統,必須將這個檔案拿掉,可以使用改名字的方式或者直接刪除。

--------------------------------------------------------------------------------

當一切設定好了之後,重新執行 Apache 伺服器。在 Apache 目錄下有 bin 或是 sbin 的目錄,其中會有 apachectl 的 shell 程式,輸入 apachectl restart 就可以重新啟動 Apache 伺服器了。趕快試看看 hello, world 程式吧!

--------------------------------------------------------------------------------

E. 有哪些 PHP 調試技巧

有許多 PHP 調試技術可以在編碼的時候節約大量時間。一個有效卻很基本的調試技術就是打開錯誤報告。另一個略微高級一點的技術包括使用 print 語句,通過顯示在屏幕上實際出現的內容,有助於精確地找出更難發現的 bug。PHPEclipse 是一個 Eclipse 插件,能夠強調常見的語法錯誤,可以與調試器結合起來用於設置斷點。

設置
要學習本文描述的概念,需要 PHP、Web 伺服器和 Eclipse。調試器擴展支持的 PHP 版本是 V5.0.3。
我們需要一個 Web 伺服器來解析用 PHP 創建的頁面並把它們顯示到瀏覽器。本文中使用的是 Apache2。但是,任何 Web 伺服器都可以滿足要求。
要利用本文中介紹的一些調試技術,需要安裝 Eclipse V3.1.1 和插件 PHPEclipse V1.1.8。由於 Eclipse 要求 java™ 技術,所以還要下載它。
還需要 PHP 的調試器擴展模塊。安裝它略有些麻煩。請仔細跟隨安裝調試器擴展的操作說明。現在,先在 php.ini 文件中注釋掉那些要求裝入和配置 PHP 擴展的行。在需要使用調試器的時候,再取消注釋。
請參閱 參考資料 獲得下載信息。現在介紹出錯消息。

出錯消息
出錯消息是作為開發人員的第一道防線。誰都不想在一台沒有配置成顯示出錯消息的伺服器上用 PHP 開發代碼。但是,請記住,當代碼調試完成,准備運行的時候,應當確保關閉了錯誤報告,因為不希望站點的訪問者看到出錯消息,因為這會給他們提供足夠的信息來利用站點的弱點並黑掉站點。
也可以用出錯消息為自己服務,因為它們會顯示拋出或生成錯誤的正確代碼行。這樣,調試就變成在瀏覽器上查看生成的錯誤所顯示的行號,並在代碼中檢查這一行。稍後,將會看到 PHPEclipse 插件通過即時地給語法錯誤加下劃線並在保存文件時用紅色 「x」 標注語法錯誤,可在開發和調試過程中提供極大的幫助。
先來看如何在 php.ini 文件中開啟錯誤報告並設置錯誤報告的級別。然後將學習如何在 Apache 的配置文件中覆蓋這些設置。
PHP 的錯誤報告
php.ini 文件中有許多配置設置。您應當已經設置好自己的 php.ini 文件並把它放在合適的目錄中,就像在 Linux 上安裝 PHP 和 Apache 2 的文檔說明中所示的那樣(請參閱 參考資料)。在調試 PHP 應用程序時,應當知道兩個配置變數。下面是這兩個變數及其默認值:

復制代碼代碼如下:

display_errors = Off
error_reporting = E_ALL

通過在 php.ini 文件中搜索它們,可以發現這兩個變數當前的默認值。display_errors 變數的目的很明顯 —— 它告訴 PHP 是否顯示錯誤。默認值是 Off。但是,要讓開發過程更加輕松,請把這個值設為 On:

復制代碼代碼如下:

display_errors = On

error_reporting 變數的默認值是 E_ALL。這個設置會顯示從不良編碼實踐到無害提示到出錯的所有信息。E_ALL 對於開發過程來說有點太細,因為它在屏幕上為一些小事(例如變數未初始化)也顯示提示,會搞糟瀏覽器的輸出。我只想看到錯誤和不良編碼實踐,但是不想看到無害的提示。所以,請用以下值代替 error_reporting 的默認值:

復制代碼代碼如下:

error_reporting = E_ALL & ~E_NOTICE

重新啟動 Apache,就全部設置好了。接下來,將學習如何在 Apache 上做同樣的事。
伺服器上的錯誤報告
依賴於 Apache 正在做的工作,在 PHP 中打開錯誤報告可能沒法工作,因為在計算機上可能有多個 PHP 版本。有時很難區分 Apache 正在使用哪個 PHP 版本,因為 Apache 只能查看一個 php.ini 文件。不知道 Apache 正在使用哪個 php.ini 文件配置自己是一個安全問題。但是,有一種方法可以在 Apache 中配置 PHP 變數,從而保證設置了正確的出錯級別。
而且,最好知道如何在伺服器端設置這些配置變數,以否決或搶占 php.ini 文件,從而提供更高級別的安全性。
在配置 Apache 時,應該已經接觸過 <apache2-install-dir>/conf/httpd.conf 中 http.conf 文件中的基本配置。
要做在 php.ini 文件中已經做過的事,請把下列各行添加到 httpd.conf,覆蓋任何 php.ini 文件:

復制代碼代碼如下:

php_flag display_errors on
php_value error_reporting 2039

這會覆蓋在 php.ini 文件中為 display_errors 已經設置的標志,以及 error_reporting 的值。值 2039 代表 E_ALL & ~E_NOTICE。如果願意採用 E_ALL,請把值設為 2047。同樣,還是要重啟 Apache。
接下來,要在伺服器上測試錯誤報告。
測試錯誤報告
如果啟動了錯誤報告,會節約許多時間。PHP 中的錯誤會指向代碼中的錯誤。請創建一個簡單的 PHP 文件 test.php,並像清單 1 所示一樣定義它。

F. 如何調試PHP程序

用xedebug調試。安裝phpstudy,在php擴展管理里勾上xdebug,自動打開xdebug。phpstudy支持26種組合一鍵切換。

G. php 代碼如何調試

開啟Apache伺服器以及MY_SQL資料庫

在PHP集成環境的安裝目錄「www」文件夾中創建我們需要用到的php文件,1.php.

用Notepad++打開1.php文件,然後輸入PHP的語言格式:
<?php ?>

輸入標準的輸出語言:
<?php
echo "Hello world !" //輸出Hello world 語言。 echo 是列印的意思
?>

在網頁上輸入localhost:8080/1.php可以調試我們自己寫的php代碼

PHP的簡單運算,用$來定義應用數據,輸出也是一樣。
<?php
$sum=1;
$total=1.22;
$sum=$total+$sum;
echo $sum ?>

H. 利用瀏覽器的Javascript控制台調試PHP程序

PHP是一種伺服器端腳本語言,用來開發動態web應用程序。與JAVA相比,沒有一個好的伺服器端調試工具是其限制之一。通常我們都是在PHP代碼中添加echo、var_mp等語句,將變數、數組的值顯示在瀏覽器中來達到調試的目的。
現在,越來越多的瀏覽器都有了開發這工具或者Javascript控制台,通過這些工具,我們可以很方便的顯示PHP代碼中的變數或數組值。下面我們來做一個例子。例子中的PHP代碼有四個跟蹤級別:info,
warn,
log,
error,開發人員可以使用瀏覽器控制台來顯示錯誤變數,數組值。
將下面代碼拷貝到PHP文件中,並保存為WebConsole.php
復制代碼
代碼如下:
<?php
class
WebConsole
{
private
static
function
write($data,
$type
=
'info')
{
$method_types
=
array('error',
'info',
'log',
'warn');
$msg_type
=
'';(PS:T不錯的PHP
Q扣峮:304224365,驗證:csl)
if(in_array($type,
$method_types))
{
$msg_type
=
sprintf("console.%s",
$type);
}else
{
$msg_type
=
sprintf("console.%s",
'info');
}
if(is_array($data))
{
echo("<script>$msg_type('".implode(',
',
$data)."');</script>");
}
else
{
echo("<script>$msg_type('".$data."');</script>");
}
}
public
static
function
info($data)
{
self::write($data);
}
public
static
function
error($data)
{
self::write($data,
'error');
}
public
static
function
log($data)
{
self::write($data,
'log');
}
public
static
function
warn($data)
{
self::write($data,
'warn');
}
}
?>
現在,導入WebConsole類,並使用跟蹤功能。
復制代碼
代碼如下:
<?php
require_once('WebConsole.php');
$fruits
=
array('apple',
'mange',
'banana');
WebConsole::log($fruits);
WebConsole::info($fruits);
WebConsole::warn($fruits);
WebConsole::error($fruits);
?>
現在打開你的瀏覽器控制台,你會發現出現類似下面的屏幕截圖:

I. php非同步調試和線上調試網站程序

php非同步調試和線上調試網站程序

php非同步調試和線上調試網站程序既方便網站程序錯誤調試,又不影響網站的正常運行的調試方法。下面是我為大家帶了的php非同步調試和線上調試網站程序,歡迎閱讀。

php非同步調試和線上調試網站程序

代碼如下

//ini_set('error_reporting',E_ALL ^ E_NOTICE);//顯示所有除了notice類型的錯誤信息

ini_set('error_reporting',E_ALL);//顯示所有錯誤信息

ini_set('display_errors',off);//禁止將錯誤信息輸出到輸出端

ini_set('log_errors',On);//開啟錯誤日誌記錄

ini_set('error_log','C:/phpernote');//定義錯誤日誌存儲位置

另外附加兩句比較常用的排除錯誤信息的PHP語句:

代碼如下

@ini_set('memory_limit','500M');//設置程序可佔用最大內存為500MB

@ini_set('max_execution_time','180');//設置允許程序最長的執行時間為180秒

補充

die()和exit()也是我們常用的php調試一個方法

die()和exit()函數都有終止線程的作用,是php斷點調試需要使用的最主要的函數,它們也是php程序員使用非常頻繁的函數。然而兩者又有什麼區別呢?在程序調試時需要注意什麼問題呢?

die()函數一般與「or」一並使用,寫作「or die()」,經常看到這樣的語句:

代碼如下

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

or在這里是這樣理解的,因為在PHP中並不區分數據類型,所以$file既可以是int也可以bool,所以這樣的語句不會報錯。但其處理過程可能有些朋友不大明白。其實在大多數的語言中, bool or bool這樣的語句中,如果前一個值為真後一個值就不會再判斷了。這里也是的,所以如果fopen函數執行正確的話,會返回一個大於0的int值(這其實就是"真"),後面的語句就不會執行了。如果fopen函數執行失敗,就會返回false,那麼就會判斷後面的表達式是否為真了。結果執行了die()之後,不管返回什麼,程序都已經停止執行了,並且顯示指定的.出錯信息,也就達到了調試的目的。就這樣。

實際上,die和exit是等價的,都是用來終止當前腳本。

php手冊對兩者的解釋如是說:

exit() 函數輸出一條消息,並退出當前腳本。該函數是 die() 函數的別名。

die() 函數輸出一條消息,並退出當前腳本。該函數是 exit() 函數的別名。

實例:

代碼如下

<?php $site = "http://www.111cn.net/"; fopen($site,"r") or exit("Unable to connect to $site"); ?>

<?php $site = "http://www.111cn.net/"; fopen($site,"r") or die("Unable to connect to $site"); ?>

var_mp()和print_r()

var_mp -- 列印變數的相關信息

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

此函數顯示關於一個或多個表達式的結構信息,包括表達式的類型與值。數組將遞歸展開值,通過縮進顯示其結構。

提示: 為了防止程序直接將結果輸出到瀏覽器,可以使用輸出控制函數(output-control functions)來捕獲此函數的輸出,並把它們保存到一個例如 string 類型的變數中。

代碼如下

<?php

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

var_mp ($a);

$b = 3.1;

$c = TRUE;

var_mp($b,$c);

?>

var_mp()可以輸出多個變數,如:var_mp($b,$c)

print_r -- 列印關於變數的易於理解的信息

bool print_r ( mixed expression [, bool return] )

注: 參數 return 是在 PHP 4.3.0 的時候加上的

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

記住,print_r() 將把數組的指針移到最後邊。使用reset() 可讓指針回到開始處。

代碼如下

<pre>

<?php

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

'b' => 'banana',

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

print_r ($a);

?>

</pre>

上邊的代碼將輸出:

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

如果想捕捉 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 包含了 print_r 的輸出結果

?>

注: 如果想在 PHP 4.3.0 之前的版本中捕捉 print_r() 的輸出,可使用輸出控制函數。

注: 在 PHP 4.0.4 之前的版本中,如果給出的 array 或 object 包含了直接或間接指向自身的引用,print_r() 將永遠繼續下去。print_r($GLOBALS) 就是一個例子,因為 $GLOBALS 自身即是全局變數,其包含了指向自身的引用。

下面的幾個函數可以讓你隨時查看程序中任何變數的類型及其值。

代碼如下

function ss_array_as_string (&$array, $column = 0) {

$str = "Array(

n";

while(list($var, $val) = each($array)){

for ($i = 0; $i < $column+1; $i++){

$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";

}

$str .= $var. ==>; ;

$str .= ss_as_string($val, $column+1)."

n";

}

for ($i = 0; $i < $column; $i++){

$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";

}

return $str.);

}

function ss_object_as_string (&$object, $column = 0) {

if (empty($object->;classname)) {

return "$object";

}

else {

$str = $object->;classname."(

n";

while (list(,$var) = each($object->;persistent_slots)) {

for ($i = 0; $i < $column; $i++){

$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";

}

global $$var;

$str .= $var. ==>; ;

$str .= ss_as_string($$var, column+1)."

n";

}

for ($i = 0; $i < $column; $i++){

$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";

}

return $str.);

}

}

function ss_as_string (&$thing, $column = 0) {

if (is_object($thing)) {

return ss_object_as_string($thing, $column);

}

elseif (is_array($thing)) {

return ss_array_as_string($thing, $column);

}

elseif (is_double($thing)) {

return "Double(".$thing.")";

}

elseif (is_long($thing)) {

return "Long(".$thing.")";

}

elseif (is_string($thing)) {

return "String(".$thing.")";

}

else {

return "Unknown(".$thing.")";

}

}


;

J. 如何使用Eclipse PDT調試PHP程序

1. 下載eclipse,從官網上找就可以了,並確認當前系統中有java環境,即jdk和jre。

2. 安裝pdt了,採用的是在線安裝,更新地址在默認中已經包含了。只是更新起來比較麻煩。(如果直接下載 攜帶PDT的 Eclipse版本,可省略)

3. 下載調試器,調試器有兩種,一種時xdebug,另一種時zenddebug,本文採用 xdebug。

下載下來的應該是源代碼包。解壓縮,然後cd到目錄,然後phpize,有的時候可能沒有這個程序,運行sudo apt-get install
php5-dev,就可以了。然後就會出現熟悉的config程序 ./configure 出現一連串黑白屏字元,接著make,make
install。後兩項命令執行的時候,可能會需要sudo許可權,因為涉及到將程序文件復制到系統目錄。

4. 在/etc/php5/apache2/conf.d/中建立一個xdebug.ini文件,可以用vi或者其他文本程序,加入如下的配置項目。

熱點內容
原神過主線任務腳本 發布:2025-01-12 06:34:51 瀏覽:513
醫保電子密碼在哪裡找到 發布:2025-01-12 06:34:38 瀏覽:348
安卓手機有網卻不能使用怎麼辦 發布:2025-01-12 06:25:20 瀏覽:212
arm存儲器映射 發布:2025-01-12 06:25:12 瀏覽:250
安卓系統個人字典有什麼用 發布:2025-01-12 06:13:37 瀏覽:928
geventpython安裝 發布:2025-01-12 06:13:34 瀏覽:339
放鬆解壓助睡眠直播 發布:2025-01-12 06:13:00 瀏覽:829
車載wince和安卓哪個好用 發布:2025-01-12 05:58:18 瀏覽:840
vb6遍歷文件夾 發布:2025-01-12 05:58:13 瀏覽:366
c在C語言中代表什麼 發布:2025-01-12 05:52:59 瀏覽:48