当前位置:首页 » 编程语言 » 调试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 10:11:01 浏览:205
解压香皂视频合集完整版全集 发布:2025-01-12 10:03:33 浏览:572
hill密码的加密 发布:2025-01-12 09:56:33 浏览:614
组卷源码 发布:2025-01-12 09:51:12 浏览:997
java文件夹改名 发布:2025-01-12 09:49:01 浏览:117
脚本函数未定义 发布:2025-01-12 09:39:44 浏览:636
页面PHP 发布:2025-01-12 09:38:07 浏览:201
邮政银行打电话登录密码是什么 发布:2025-01-12 09:37:27 浏览:564
linuxroot远程登录 发布:2025-01-12 09:37:26 浏览:303
怎么算服务器ip 发布:2025-01-12 08:59:19 浏览:855