Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/2/17 7:46:07
用PHP程序实现删除目录的三种方法实例_[PHP教程]

用PHP程序实现删除目录的三种方法实例_[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。循环法


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








If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759