本文目录一览:
- 1、php异步调试和线上调试网站程序
- 2、PHP开发通常使用什么工具?
- 3、刚给eclipse装上pdt插件,想学php,打了几行简单的代码发现运行不了,提示 no php executables defined
- 4、PDT编写php什么意思
- 5、如何在Ubuntu上使用eclipse搭建PHP开发和调试环境
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 = ""; fopen($site,"r") or exit("Unable to connect to $site"); ?
?php $site = ""; fopen($site,"r") or die("Unable to connect to $site"); ?
var_dump()和print_r()
var_dump -- 打印变量的相关信息
void var_dump ( mixed expression [, mixed expression [, ...]] )
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
提示: 为了防止程序直接将结果输出到浏览器,可以使用输出控制函数(output-control functions)来捕获此函数的输出,并把它们保存到一个例如 string 类型的变量中。
代码如下
?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);
$b = 3.1;
$c = TRUE;
var_dump($b,$c);
?
var_dump()可以输出多个变量,如:var_dump($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 .= "    ";
}
$str .= $var. ==; ;
$str .= ss_as_string($val, $column+1)."
n";
}
for ($i = 0; $i $column; $i++){
$str .= "    ";
}
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 .= "    ";
}
global $$var;
$str .= $var. ==; ;
$str .= ss_as_string($$var, column+1)."
n";
}
for ($i = 0; $i $column; $i++){
$str .= "    ";
}
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.")";
}
}
;
PHP开发通常使用什么工具?
PHP 能做任何事。PHP 主要是用于服务端的脚本程序,因此您可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域。
服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作您需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、WEB 服务器和 WEB 浏览器。您需要在运行 WEB 服务器时,安装并配置 PHP,然后,可以用 WEB 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。请查阅“安装”一章以获取更多信息。
命令行脚本。您可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,您仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅“PHP 的命令行模式”以获取更多信息。
编写客户端的 GUI 应用程序。对于基于窗口式的应用程序来说,PHP 或许不是一种最好的语言,但是如果您非常精通 PHP,并且希望在您的客户端应用程序中使用 PHP 的一些高级特性,您可以利用 PHP-GTK 来编写这些程序。用这种方法,您还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。如果您对 PHP-GTK 感兴趣,请访问其网站以获取更多信息。
刚给eclipse装上pdt插件,想学php,打了几行简单的代码发现运行不了,提示 no php executables defined
请参考这个:
不过他里面说的编译php文件这种说法是不对的。php文件不需要编译
PDT编写php什么意思
PDT = php development tools (php开发工具)
常见的有eclipse,至少我用这个觉得很好
如何在Ubuntu上使用eclipse搭建PHP开发和调试环境
1.安装Eclipse和PDT等插件:最简单的是从这个站点http //eclipse org/pdt/下载最新版本的PDT x.x All In Ones / Eclipse PHP Package
2.安装Java运行环境Jre/Jdk,注意JRE或者JDK的版本必须要满足Eclipse软件的最低需求
3. 安装配置xdebug(可以参考我的文章http //blog csdn net/huoyin/article/details/7538738),最好将这个文中的端口改为9000,这样在eclipse中就可以少配置一部分
4. 重启apache
sudo /etc/init.d/apache2 restart
5. 打开eclipse,建一个PHP项目,再建一个PHP网页
echo phpinfo();
保存,在firefox中测试看一下结果。这里要注意路径,一定要找得到文件。
6. 配制eclipse的浏览器
打开eclipse,找到window-preferences-general-web browser,看一下有没浏览器,没有就添加一下,当然是firefox
7. 配制运行及调试选项
window-preferences-PHP-php executables-add-设置如下
php5
/usr/bin/php5 (注意这里要选择php5,不要是php,因为我们安装的是php5-xdebug)
8.建立PHP脚本后,最后调试运行
打开Run-Open Debug Dialog ,选择调试所需要用的名称和环境,仔细看一下,应该没问题。
然后就可以单步调试了。
主要的就这么多,其他的自己多摸索一下.
-----------------------------------------------------------------------------------------------------------------------------------
软件开发的断点调试是必不可少,这里介绍ubuntu中eclipse工具中php的调试配置。
本打算配置ZendDebugger 进行调试,配置了老长时间没配置成功,在phpinfo看不到ZendDebugger生效,经查发现是php5.3的问题,必须先卸载,本文介绍使用xdebug了。
软件安装太简单了,分别执行如下命令:
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install php5-cli
sudo apt-get install php5-xdebug
php的配置:
php.ini在/etc/php5/下的几个文件夹里,应该有三个文件夹:apache2、cli、conf.d,我们应该修改apache2和cli 下的php.ini. 在conf.d下有一个xdebug.ini文件,记录了xdebug的文件路径。
sudo vi /etc/php5/apache2/php.ini
sudo vi /etc/php5/cli/php.ini
用超级用户权限分别打开上面说的两个php.ini,添加如下代码
[xdebug]
xdebug.remote_enable = 1
xdebug_remote_host = “localhost”
xdebug.remote_port = 9000
xdebug.remote_handler = “dbgp”
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
重新启动apache:sudo /etc/init.d/apache2 restart
配置eclipse的调试和运行环境
打开eclipse的菜单-[windows]-[preferences]
选择php -debug在右面窗口中的php debugger中选择xdebug,下面的字符集选择与开发的代码字符集一致,然后应用。
选择php executables的窗口右面新建,名称:php5;excute phth:/usr/bin/php5;ini file :/etc/php5/apache2/php.ini;type:cli;debugger:xdebug。
好了,现在一切顺利,就可以进行断点调试程序了。