php創(chuàng)建和刪除目錄函數(shù)介紹和遞歸刪除目錄函數(shù)分享
mkdir() — 新建目錄
– 語法:bool mkdir (string pathname [,int mode])
– 嘗試新建一個(gè)由 pathname 指定的目錄。
rmdir() — 刪除目錄
– 語法:bool rmdir ( string dirname )
– 嘗試刪除 dirname 所指定的目錄。 該目錄必須是空的,而且要有相應(yīng)的權(quán)限。如果成功則返回 TRUE,失敗則返回
FALSE。
unlink — 刪除文件
– 語法:bool unlink ( string filename )
– 刪除 filename。和 Unix C 的 unlink() 函數(shù)相似。如果成功則返回 TRUE,失敗則返回 FALSE。
在PHP中,使用mkdir()函數(shù)只需要傳入一個(gè)目錄名即可很容易地建立一個(gè)新目錄。但刪除目錄所使用的函數(shù)rmdir(),只能刪除一個(gè)空目錄并且目錄必須存在。如果是非空的目錄就需要先進(jìn)入到目錄中,使用unlink()函數(shù)將目錄中的每個(gè)文件都刪除掉,再回來將這個(gè)空目錄刪除。如果目錄中還存在目錄,而且子目錄也非空,就要使用遞歸的方法了。自定義遞歸函數(shù)刪除目錄的程序代碼如下所示:
<?php
//自定義函數(shù)遞歸的刪除整個(gè)目錄
function delDir($directory){
if(file_exists($directory)){ //如果不存在rmdir()函數(shù)會(huì)出錯(cuò)
if($dir_handle = @opendir($directory)){ //打開目錄,并判斷是否能成功打開
while($filename = readdir($dir_handle)){ //循環(huán)遍歷目錄下的所有文件
if($filename != "."&& $filename != ".."){ //一定要排除兩個(gè)特殊的目錄
$subFile = $directory."/".$filename; //將目錄下的子文件和當(dāng)前目錄相連
if(is_dir($subFile)) //如果為目錄則條件成立
delDir($subFile); //遞歸地調(diào)用自身函數(shù),刪除子目錄
if(is_file($subFile)) //如果是文件則條件成立
unlink($subFile); //直接刪除這個(gè)文件
}
}
closedir($dir_handle); //關(guān)閉文件資源
rmdir($directory); //刪除空目錄
}
}
}
dirDir("phpMyAdmin"); //調(diào)用delDir()函數(shù),將程序所在目錄中的“phpMyAdmin”文件刪除
?>
當(dāng)然也可以通過調(diào)用操作系統(tǒng)命令“rm-rf”刪除非空的目錄,但也要從安全和跨平臺(tái)方面考慮盡量不要去使用。
相關(guān)文章
那些年我們錯(cuò)過的魔術(shù)方法(Magic Methods)
PHP 對(duì)象的一個(gè)優(yōu)勢(shì)是可以使用魔術(shù)方法,這些方法可以不需要修改外部代碼而重寫一個(gè)類的默認(rèn)行為,這使得PHP 語法有更少的冗余性和更具有擴(kuò)展性。這些方法很好識(shí)別,他們都是以雙下劃線(__)開始的2014-01-01PHP pthreads v3下worker和pool的使用方法示例
這篇文章主要介紹了PHP pthreads v3下worker和pool的使用方法,結(jié)合實(shí)例形式分析了PHP pthreads v3下worker和pool的基本功能、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-02-02php+redis在實(shí)際項(xiàng)目中HTTP 500: Internal Server Error故障排除
用戶量快速增長(zhǎng),訪問量在短時(shí)間內(nèi)翻倍,由于前期容量規(guī)劃做得比較好,硬件資源可以支撐,可是軟件系統(tǒng)方面出現(xiàn)了大問題:40% 的請(qǐng)求都會(huì)返回 HTTP 500: Internal Server Error2017-02-02基于asp+ajax和數(shù)據(jù)庫(kù)驅(qū)動(dòng)的二級(jí)聯(lián)動(dòng)菜單
基于asp+ajax和數(shù)據(jù)庫(kù)驅(qū)動(dòng)的二級(jí)聯(lián)動(dòng)菜單,需要的朋友可以參考下。2010-05-05PHP JSAPI調(diào)支付API實(shí)現(xiàn)微信支付功能詳解
本人最近做了微信支付開發(fā),是第一次接觸,其中走了很多彎路,遇到的問題也很多。為了讓和我一樣的新人不再遇到類似的問題,我把我的開發(fā)步驟和問題寫出來以供參考,這篇文章主要介紹了PHP JSAPI調(diào)支付API實(shí)現(xiàn)微信支付功能2022-11-11PHP計(jì)算2點(diǎn)經(jīng)緯度之間的距離代碼
以下是對(duì)PHP計(jì)算2點(diǎn)經(jīng)緯度之間的距離代碼進(jìn)行了分析介紹,需要的朋友可以過來參考下2013-08-08取得單條網(wǎng)站評(píng)論以數(shù)組形式進(jìn)行輸出
這篇文章主要介紹了取得單條網(wǎng)站評(píng)論方法并以數(shù)組形式進(jìn)行輸出,需要的朋友可以參考下2014-07-07深入解析PHP內(nèi)存管理之誰動(dòng)了我的內(nèi)存
本篇文章是對(duì)php中的內(nèi)存進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06