快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

PHP中几种删除目录的方式

呵呵,突然一个朋友问我如何删除目录,比如下面有文件呢,我说用递规呀,他说太慢了。于是就总结出了下面几种办法。

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:

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;


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


返回类别: 教程
上一教程: 通过ODBC连接的SQL SERVER实例
下一教程: 显示当前在线人数

您可以阅读与"PHP中几种删除目录的方式"相关的教程:
· 开发大型PHP项目的方式(一)
· 如何删除多级目录
· php获取某个目录大小
· 在WIN98下以apache模块方法安装php
· 浅谈PHP+MYSQL身份验证的方式
    微笑服务 优质保证 索取样品