一、安装配置
1、下载PHP的XDebug扩展,网址:http://xdebug.org/
2、在Linux下编译安装XDebug
引用
tar -xzf xdebug-2.0.0RC3.gz
cd xdebug-2.0.0RC3
/usr/local/php/bin/phpize
./configure --enable-xdebug
cp modules/xdebug.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/
注:/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/不同的PHP版本路径不同,也不一定要放在该路径,可以在zend_extension_ts中自行指定xdebug.so所在位置。
引用
vi /usr/local/php/lib/php.ini
修改php.ini,去除PHP加速模块,增加以下配置信息支持XDebug扩展
[Xdebug]
zend_extension_ts="/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/xdebug.so"
xdebug.profiler_enable=on
xdebug.trace_output_dir="/tmp/xdebug"
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.profiler_output_name="script"
view plaincopy to clipboardprint?
[Xdebug]
zend_extension_ts="/usr/local/php/lib/php/extension ......
<?php
* xCopy("feiy","feiy2",1):拷贝feiy下的文件到 feiy2,推销员的一天,包括子目录
*参数说明:
* $destination:目的目录名
*/
if (!file_exists($destination))
if (!mkdir(rtrim($destination, '/'), 0777))
 ,有效消除黑眼圈5个妙方DIY; //$err->add($_LANG['cannt_mk_dir']);
}
}
return 0;
if(!is_dir($destination)){
}
while($entry=$handle->read()){
if(is_dir($source."/".$entry)){
xCopy($source."/".$entry,$destination."/".$entry,$child);
else{
}
}
}
* deldidr("feiy"):删除feiy,包括子目录 ......
PHP缓存技术详解
一、缓存技术:
有些信息比方经常不变的,但是还是能变的信息放在缓存中以加快显示速度,这是很有价值的,所谓的缓存,通俗的理解就是一些保存在服务器端的共用信 息.它是于服务器同生死的,我们在保存缓存的时候可以指定下次更新的时间的判断,比方要在5分钟更新一次,可以记录上次更新的时间,和当前时间比较,如果 大于 5 分钟 ,读取数据库,更新换成,否则直接读取缓存数据,当然,缓存需要客户端用户激活的,只需一次.
ob_start()函数:打开输出缓冲区.
函数格式 void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用 ob_end_flush()或flush()输出缓冲区的内容。
Flush:刷新缓冲区的内容,输出。
函数格式:flush()
说明:这个函数经常使用,效率很高。
ob_get_contents :返回内部缓冲区的内容。
函数格式:string ob_get_contents(void)
说明:这个函数会返回当前缓冲区中的内容, ......
PHP环境配置心得
Apache的配置
首先我在http://httpd.apache.org/download.cgi下的是“Win32 Binary without crypto (no mod_ssl) (MSI Installer): httpd-2.2.15-win32-x86-no_ssl.msi”。安装那是小儿科啦,下一步下一步。我就不说了。
安装完后就要开始配置了,首先是配置访问文件的路径,默认的是“C:\Program Files\Apache Software Foundation\Apache2.2\htdocs”因为我的文件放在F盘,所以我找到了“C:\Program Files\Apache Software Foundation\Apache2.2\conf”下的“httpd”文件找到了DocumentRoot,本来我就是从资源管理器的复制网站路径“F:\djl\http”,注意啊,Apache的目录格式是“/”斜杠,所以要改成“F:/djl/http”。
此时把浏览器打开输入“http://localhost/”却发现之前默认的 “It works!”不见了,取而代之的是
Forbidden
You don't have permission to access / on this server.
--------------------------- ......
PHP的realpath(...)
Author:zfive5(zidong)
Email :zfive5@yahoo.com.cn
引子:
昨天帮人改了一下PHP程序,在配eclipse+php(xdebug)+mysql+apache后,就陷入一步步漫长而乏味的调试中,虽然工具有些不太好用(但也对php环境9年来的进步感到兴奋), 在整个调试过程中,发现自己完全让realpath(...)带入了沟里,1个多小时呀!为了这一个1小时也该写点什么出来!
正文:
PHP realpath() 函数
定义和用法
realpath() 函数返回绝对路径。
该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名。
若失败,则返回 false。比如说文件不存在的话。
语法
readlink(linkpath)
参数 描述
linkpath 必需。规定要检查的连接路径。
说明
在 BSD 系统上,如果仅仅是 linkpath 不存在的话,PHP 并不会像其它系统那样返回 false。
目录结构:
WebSite
|
|--1.php
|
|--txt11
| & ......
如下php代码
<?php
$type='a';
$target='type';
$a=array(1,2,3);
a($target);
function a($type)
{
global $$type;
var_dump($$type);
}
?>
预计输出的是string(1)”a”
可是结果是
Notice: Undefined variable: a in D:\web\global.php on line 11
NULL
因为global的时候引进了$type,顺便把全局的$type引进了,函数内部的$type的值被修改成了全局的'a',而函数内部又没有$a,所以报错和打印null
不知道这是php的错误还是就是global的机制,不过个人认为这个情况下只引进$type就可以了 ......