`
varsoft
  • 浏览: 2442142 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

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');
}
}
}

// 再附一段代码

function deldir($dir){
$current_dir = opendir($dir);
while($entryname = readdir($current_dir)){
if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")){
deldir("${dir}/${entryname}");
}elseif($entryname != "." and $entryname!=".."){
unlink("${dir}/${entryname}");
}
}
closedir($current_dir);
rmdir($dir);
}


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;

}

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

by heiyeluren 2005/07/28

分享到:
评论

相关推荐

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

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

    php删除数组中重复元素的方法

    几种php删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法。...

    PHP防止表单重复提交的几种常用方法汇总

    本文较为详细的汇总了PHP防止表单重复提交的几种常用方法,在PHP程序开发中有着很高的实用价值。具体方法如下: 1. 使用JS让按钮在点击一次后禁用(disable)。采用这种方法可以防止多次点击的发生,实现方式较简单...

    总结PHP删除字符串最后一个字符的三种方法

    为大家讲解的是php实现如何去掉字符串的最后一个字符的多种方法,感兴趣的同学参考下。下面来一起看看。

    php网络开发完全手册

    1.5 几种综合网络服务器系统的安装 14 1.5.1 XAMPP 14 1.5.2 WAMP 16 1.5.3 Appserv 17 1.5.4 EasyPHP 18 1.5.5 VertrigoServ 19 1.6 几种开发工具的介绍 20 1.6.1 Vi及Vim 20 1.6.2 Eclipse+PHPEclipse插件 21 ...

    php文件上传、下载和删除示例

    错误有如下几种: 1).上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值 2).上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值 3).文件只有部分被上传 4).没有文件被上传 5).找不到...

    图片上传(php实现单图、多图都有)

    此款为图片上传插件、利用php+html实现的一个功能。同时还带有图片删除(直接删除本地资源文件)。我写了好几种方案可以去实现

    PHP连接MYSQL数据库的3种常用方法

    这里,整理几种常用的PHP连接MYSQL数据库的方法。 第一、常用普通方法 $mysql_server=localhost; $mysql_username=数据库用户名; $mysql_password=数据库密码; $mysql_database=数据库名; //建立数

    配置阿帕奇1.PHP4.23在WindowsXP下的IIS和Apache2两种服务器上的安装实例 http://www.phpe.net/articles/260.shtml

    删除改装mysql4.0,尽管在my.ini中修改了datadir和basedir(修改为mysql4.0的),但在WinMySQLAdmin1.4中的Variables选项卡中显示的内容仍是有关mysql5.0alpha 的内容,如:datadir和basedir。以上工作是在一小时内...

    PHP 面向对象技术(全面讲解).txt

    上面看到PHP 对象中的成员有两种一种是成员属性,一种是成员方法。对象我们以经可以声明 了,$p1=new Person();怎么去使用对象的成员呢?要想访问对象中的成员就要使用一个特殊的操 作符“->”来完成对象成员的访问...

    114_PHP淘宝客程序_V1.1版

    4、集成淘宝客几种推广模式:商品、店铺、搜索、频道、主题等,丰富了网站内容。 5、支持多个APPKEY,当API次数超限后自动启用下一个APPKEY,如果设了多个的话。(基本上解决因API限制调用导致的数据无法显示问题) 6...

    php批量删除超链接的实现方法

    有时候我们会遇到这种需求,清除掉一段html文本内容中的超链接,这时有什么好办法呢?下面就总结几种简单的方法清除html文本中的超链接,需要的朋友可以参考下

    php-5.4.5-Win32-VC9-x86

    php 是一种服务器端的,嵌入html的脚本语言。php区别其他像客户端java的地方是它的代码在服务器端执行.php能做什么? 最低水平,php可以做任何其他cgi程序所能做的事,例如收集表格数据,生成动态页面内容,或者收发...

    DISCUZ2.5 升级到Discuz!4.0.0的升级程序

    <br>切记:请察看一下你原来的数据表前缀是什么,并将config.inc.php中的$tablepre做相应修改 <br> D4正式版中config.inc.php新增加了一个变量$charset,请根据你所使用的语言来设置,目前只有三种可设置gbk、...

    ID&WLC文件管理

    2,类型匹配,只显示指定的文件,如html文件,图片文件(gif|jpg|png),显示几种文件的话用‘|’分开,图片就是 gif|jpg|png 3, 统计使用空间的大小 4,可以列出指定的目录里面的文件和目录 原有功能 0,支持用户...

    PHP3程序设计

    14.5 几种连接类型 222 14.5.1 左连接 222 14.5.2 正则左连接 223 14.5.3 Using选项 223 14.6 处理空值 224 14.7 完整性 225 14.8 总结 226 第15章 中场四:管理并发访问 228 15.1 问题:一个用户能覆盖另一 个用户...

    sublime text福利 40多个插件集合 5款主题(完美支持sublime text3和st2)

    此外收集了网上的5套主题 多达40几种配色方案 支持自定义外观 默认主题为扁平化flatland 预览:http://lucifr.com/2013/04/12/flatland-theme-for-sublime-text-2/ 请阅读链接中的主题替换方法 以便之后完整替换...

    PHP如何实现订单的延时处理详解

    订单是我们在日常开发中经常会遇到的一个功能,最近在做业务的时候需要实现客户下单之后订单超时未支付自动取消的功能,刚开始确认了几种方法: 客户端到时间请求取消 服务端定时查询有没有需要取消的订单,然后...

    基于PHP开发的拟态风格的简约API管理系统源码+使用说明.zip

    目录:api/tongji,此API请勿删除或更改名称,否则将会影响API调用统计。 在自己的API中顶部加入代码,即可开始统计API总体调用次数 (记得把域名改成API管理站点的域名) ```php file_get_contents('http://域名...

Global site tag (gtag.js) - Google Analytics