在php中删除文件与目录rmdir()函数就可以搞定,但是要删除一个非空目录,将不能进行快速的删除,必须先将目录中文件删除,但是目录里可能还会有子目录所以要进行PHP递归删除目录
递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行。
我们来看一个经典的递归删除函数
函数的作用:删除目录下面的所有文件,并删除目录
函数代码:
代码如下 | 复制代码 |
function deldir($dirname){ 使用实例:Public是一个文件夹,里面有许多文件夹和文件,调用deldir($dirname)把它删除
$dir='Public';//传入一个文件夹路径 |
说明:首先判断Public是否存在,如果在则打开Public,然后使用readdir循环读取Public目录里的内容,如果存在"."和".."这两个特殊目录则排除掉。如果遇到文件夹则调用自身处理,直到条件不满足。遇到文件则直接删除掉。最后层层跳出删除Public。
实例二,删除非空目录
代码如下 | 复制代码 |
/* }
//如果php文件不是ANSI,而是UTF-8模式,而且要删除的文件夹中包含汉字字符的话,调用函数前需要转码 my_del($path); |
例3,可查看成功之失败原因
代码如下 | 复制代码 |
functiondeletedir($dir){ if(!handle=@opendir($dir)){//检测要打开目录是否存在 die("没有该目录"); } while(false!==($file=readdir($handle))){ if($file!=="."&&$file!==".."){//排除当前目录与父级目录 $file=$dir.DIRECTORY_SEPARATOR.$file; if(is_dir($file)){ deletedir($file); }else{ if(@unlink($file)){ echo"文件$file删除成功。 "; }else{ echo"文件$file删除失败! "; } } } if(@rmdir($dir)){ echo"目录$dir删除成功了。 n"; }else{ echo"目录$dir删除失败! n"; } } //测试程序 $dir="/var/www/test"; deletedir($dir); ?> |
在/var/www/test文件夹下建一写文件夹和文件测试
shell>touchaaa
shell>touchbbb
shell>touchccc
shell>toucheee
shell>touchffff
shell>mkdir111
shell>mkdir222
shell>mkdir333
分别再在111,222,333文件夹下建写文件这里就不多说了,然后给他们权限
shell>chown[url]www.www[/url]test-R

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Dreamweaver Mac版
Alat pembangunan web visual