本文主要和大家分享PHP中目錄操作執行個體詳解,Mkdir(目錄位址[,許可權[,是否遞迴建立(預設為false)]]);成功返回true否則返回false。預設許可權為0777,時最大存取權限。此設定在windows系統中不起作用(Linux操作)。
echo mkdir('./name/li');//目前的目錄下並沒有name這個檔案夾
執行此操作發現報錯,因為根本不存在name這個檔案夾,因此就不能建立在name檔案夾下的li檔案夾
echo mkdir('./name/li',0777,true);//支援遞迴建立。
此時返回結果為1,表示執行成功,並且在目前的目錄下存在name檔案夾,其子檔案夾中也有li檔案夾。這就是Mkdir()支援的遞迴建立----即,自動建立目錄位址中不存在的檔案夾。
刪除目錄:
Rmdir(目錄位址);此處僅僅可以刪除空目錄,且不支援遞迴刪除。
移動(改名):
Rename(舊地址,新地址);
rename('./name/li','./li');在上面的繼承上進行此操作後,目前的目錄下name檔案夾存在,且存在li檔案夾,而name檔案夾下的li檔案夾消失了。(該函數也支援操作檔案)
擷取目錄內容:
1.開啟目錄:目錄控制代碼=opendir(目錄位址);
2.讀取檔案:檔案名稱=readdir(目錄控制代碼);依次讀取一個檔案(子目錄),同時向下移動控制代碼指標。如果取不到就返回false。(一般在目錄中都存在兩個邏輯子目錄.和..分別表示目前的目錄和上級目錄)。此處讀取的是名字而不是內容。
3.關閉目錄:closedir(目錄控制代碼);
執行個體:遞迴刪除檔案
<?php/***遞迴刪除指定檔案目錄下的所有問價及檔案夾**/function RemoveDir($path){$path=iconv('utf-8','gbk',$path);//windows中漢字編碼為gbk,而php中使用的是utf-8編碼。$dir_handle=opendir($path);echo "{$path}<br/>";while(false!==$file=readdir($dir_handle))//此處用false!==$file是因為有的檔案夾如果命名為0的話。會造while($file=readdir($dir_handle))條件不滿足{ if($file=='.'||$file=='..')//存在邏輯子目錄.和..continue;if(is_dir($path.'/'.$file)){//函數is_dir(檔案地址)判斷檔案是否為目錄。RemoveDir($path.'/'.$file);}else{unlink($path.'/'.$file);//unlink(檔案地址)刪除某個檔案。}}closedir($dir_handle);return rmdir($path);}RemoveDir('./name');