PHP下几种删除目录的方法总结


Posted in PHP onAugust 19, 2007

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

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; 

}  

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

PHP 相关文章推荐
第七节 类的静态成员 [7]
Oct 09 PHP
PHP4实际应用经验篇(9)
Oct 09 PHP
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
php 代码优化之经典示例
Mar 24 PHP
php中常用字符串处理代码片段整理
Nov 07 PHP
解析ajax事件的调用顺序
Jun 17 PHP
PHP解码unicode编码的中文字符代码分享
Aug 13 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
Dec 23 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
php可变长参数处理函数详解
Feb 22 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 PHP
wordpress之wp-settings.php
Aug 17 #PHP
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 #PHP
在PHP里得到前天和昨天的日期的代码
Aug 16 #PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 #PHP
真正的ZIP文件操作类(php)
Jul 21 #PHP
php 用sock技术发送邮件的函数
Jul 21 #PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 #PHP
You might like
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
Python同时迭代多个序列的方法
2020/07/28 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
社区服务活动总结
2014/05/07 职场文书
产品包装策划方案
2014/05/18 职场文书
银行求职信范文
2014/05/26 职场文书
2014年教师节寄语
2014/08/11 职场文书
门店店长岗位职责
2015/04/14 职场文书
redis中lua脚本使用教程
2021/11/01 Redis