当前位置:  编程技术>php
本页文章导读:
    ▪PHP下几种删除目录的方法总结       呵呵,忽然一个朋友问我如何删除目录,比如下面有文件呢,我说用递规呀,他说太慢了。于是就总结出了下面几种办法。 1。递规法: //我提供,好像有点不对,没测试 deleteDir($dir) {  if.........
    ▪wordpress之wp-settings.php       接上面开始wp-config.php,wp-settings.php这两个文件,wp-config.php故名恩意配置文件所以没什么可解释的。 wp-settings.php最上在的函数wp_unregister_GLOBALS用来当register_globals设置为on时注销自动产生的全.........
    ▪PHP4和PHP5性能测试和对比 测试代码与环境       作者:heiyeluren博客:http://blog.csdn.net/heiyeshuwu时间:2007年8月6日PHP 4到今年年底PHP Group将不再对其进行支持了,所以为了让大家更有信心的转移到PHP 5平台上,我特别做了这个测试,看看我们P.........

[1]PHP下几种删除目录的方法总结
    来源: 互联网  发布时间: 2013-11-30
呵呵,忽然一个朋友问我如何删除目录,比如下面有文件呢,我说用递规呀,他说太慢了。于是就总结出了下面几种办法。

1。递规法: //我提供,好像有点不对,没测试

deleteDir($dir)
{
 if (rmdir($dir)==false && is_dir($dir)) {
  if ($dp = opendir($dir)) {
   while (($file=readdir($dp)) != false) {
    if (is_dir($file) && $file!='.' && $file!='..') {
     deleteDir($file);
    } else {
     unlink($file);
    }
   }
   closedir($dp);
  } else {
   exit('Not permission');
  }
 } 
}


2。系统调用法     //大师兄提供

function del_dir($dir)
{
 if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
     $str = "rmdir /s/q " . $dir;
 } else {
     $str = "rm -Rf " . $dir;
 }
}


3。循环法   //from: http://www.knowsky.com/1148.html

function deltree($pathdir) 

echo $pathdir;//我调试时用的 

if(is_empty_dir($pathdir))//如果是空的 
    { 
    rmdir($pathdir);//直接删除 
    } 
    else 
    {//否则读这个目录,除了.和..外 
        $d=dir($pathdir); 
        while($a=$d->read()) 
        { 
        if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);} 
        //如果是文件就直接删除 
        if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..')) 
        {//如果是目录 
            if(!is_empty_dir($pathdir.'/'.$a))//是否为空 
            {//如果不是,调用自身,不过是原来的路径+他下级的目录名 
            deltree($pathdir.'/'.$a); 
            } 
            if(is_empty_dir($pathdir.'/'.$a)) 
            {//如果是空就直接删除 
            rmdir($pathdir.'/'.$a); 
            } 
        } 
        } 
        $d->close(); 

    echo "必须先删除目录下的所有文件";//我调试时用的 

    } 


function is_empty_dir($pathdir) 
{

//判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空
$d=opendir($pathdir); 
$i=0; 
    while($a=readdir($d)) 
    { 
    $i++; 
    } 
closedir($d); 
if($i>2){return false;} 
else return true; 

}  


呵呵,足够给各种朋友用了吧,只是按照你需要和速度来论吧。

    
[2]wordpress之wp-settings.php
    来源: 互联网  发布时间: 2013-11-30
接上面开始wp-config.php,wp-settings.php这两个文件,wp-config.php故名恩意配置文件所以没什么可解释的。

wp-settings.php最上在的函数wp_unregister_GLOBALS用来当register_globals设置为on时注销自动产生的全局变量,register_globals现在是强烈建议为off的,因为有安全问题。

从28行起到49行都是为了处理不同运行环境可能产生的问题,wp的兼容性问题处理的很周道。如果 是做开源软件这样是很有必要的,当然如果是开发自己的产品有自己的远行平台就完全没有这个必要,毕竟有一定的效率问题。关于$_SERVER变量可以直接去研究phpinfo里的所有值一般都可以看明白。

像55行这种友好的提示信息是很有必要的,因为你的用户不一定是懂技术的。

接下来的 timer_start和timer_end就是用来计算页面执行时间的两个函数.

LANGDIR,PLUGINDIR这些常量的判断为自定义插件和语言目录作了预留, 120行CUSTOM_USER_TABLE,CUSTOM_USER_META_TABLE这里说明你可以自定义用户表和你的其它应用共用。

发现这样不行,还果把说明写在注释里,再帖出来,本来记得有一个函数可以把文件着色格式化输出的,就是说在网页显示的效果和你在IDE里看到效果一样,现在找不到了有谁知道这个函数请告诉我,下面再继续。

    
[3]PHP4和PHP5性能测试和对比 测试代码与环境
    来源: 互联网  发布时间: 2013-11-30

作者:heiyeluren
博客:http://blog.csdn.net/heiyeshuwu
时间:2007年8月6日
PHP 4到今年年底PHP Group将不再对其进行支持了,所以为了让大家更有信心的转移到PHP 5平台上,我特别做了这个测试,看看我们PHP 4.x 是否真的性能比我们的PHP 5.x要好捏,测试结果很明显,那就是PHP 5.x 比php 4.x不论是面向对象还是面向过程,都要比PHP 4.x 要快,所以大家完全有必要转移到PHP 5.x 平台上,去体验PHP 5.x 平台的各种功能和性能。

因为PHP 5 包括新的对象模型,更多新特点,更快的处理速度,特别是处理面向对象代码的速度,虽然在php 4中面向对象代码的速度比较一般,但是在PHP5.x中面向对象代码的速度都超过了面向过程的速度,所以不要对面向对象的性能持有怀疑,下面的测试结果将说明这一切。

【测试环境】

  • CPU: Intel Pentium4 2.66GHz
  • Memory: 1GB
  • Disk: 73GB/SCSI
  • OS: FreeBSD 4.11
  • Web: Apache 1.3.37
    测试工具:ab (也可以选用http_load)
    名词RPS: Requests per second (每秒的请求数量)

相关
测试工具:ab (也可以选用http_load)
名词RPS: Requests per second (每秒的请求数量)

【PHP 4.4.2 测试结果】

[ 函数 Function ]

<?php
function signin(){
echo “test”;
}
signin();
?>
测试结果:ab -n 10000 -c 50 的结果是1047.23/rps
[ 类 Class ]

不实例化类
<?php
class User{
function signin(){
echo “test”;
}
}
User::signin();
?>
测试结果:ab -n 10000 -c 50 的结果是 1034.98/rps
实例化类
<?php
class User{
function signin(){
echo “test”;
}
}
$user=new User();
$user->signin();
?>
测试结果:ab -n 10000 -c 50 的结果是 1006.14/rps
类的继承
<?php
class AUser{
function signin(){}
}
class User extends Auser{
function signin(){
echo “test”;
}
}
$user=new User();
$user->signin();
?>
测试结果:ab -n 10000 -c 50 的结果是 992.95/rps

【PHP 5.2.1测试结果】

[ 函数 Function ]

<?php
function signin(){
echo “test”;
}
signin();
?>
测试结果:ab -n 10000 -c 50 的结果是 1176.06/rps
[ 类 Class ]

不实例化类
<?php
class User{
public function signin(){
echo “test”;
}
}
User::signin();
?>
测试结果:ab -n 10000 -c 50 的结果是 1197.17/rps

实例化类
<?php
class User{
public function signin(){
echo “test”;
}
}
$user=new User();
$user->signin();
?>
测试结果:ab -n 10000 -c 50 的结果是 1187.93/rps
类的继承和抽象
<?php
abstract class AUser{
abstract function signin();
}
class User extends Auser{
public function signin(){
echo “test”;
}
}
$user=new User();
$user->signin();
?>
测试结果:ab -n 10000 -c 50 的结果是 1128.54/rps

【测试结果和分析】

[ 测试结果数据 ]

版本 函数测试 不实例化类 实例化类 类的继承 PHP 4.4.2 1047.23/rps 1034.98/rps 1006.14/rps 992.95/rps PHP 5.2.1 1176.06/rps 1197.17/rps 1187.93/rps 1128.54/rps

[ 结果分析 ]

1. 总体来说,可以明显刚看到PHP5.2 的性能要比 PHP4.4略高一点,所以不要怀疑PHP5.2的性能会差,明显比 PHP4要快
2. PHP4.4中的类的解析性能明显要比函数的要慢,特别是当使用了继承以后,更是下降的厉害,所以在PHP4.4中更适宜使用面向过程和没有继承的类操作
3. PHP5.2中结果是类的执行速度比函数还要快,可以看出PHP5.2的引擎对面向对象处理花费了很大的功夫,同时他们不论是函数还是类,性能都不错
4. 通过这个测试,我们完全有理由在代码变更不大的情况下,把PHP4升级到PHP5,而且PHP5基本向下兼容PHP4的代码,除了一些特殊的代码。另外上面提到今年年底之后PHP Group将不再继续对PHP4进行维护了,所以早升级,早安心。

PS: 感谢同事健祥同学提供部分测试代码


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3