當我們想在自己的網站上添加多級目錄時,可以使用php函數mkdir參數與描述
path 必需。規定要創建的目錄的名稱。
mode 必需。規定權限。默認是 0777。
recursive 必需。規定是否設置遞歸模式。
context 必需。規定文件句柄的環境。Context 是可修改流的行為的一套選項。
說明
php函數mkdir 嘗試新建一個由 path 指定的目錄。
默認的 mode 是 0777,意味著最大可能的訪問權。
php默認的mkdir一次只能創建一層目錄,如果在當前目錄下創建一個div/css/layout 的目錄就需要逐層逐層的先創建div,再創建div/css 再創建 div/css/layout,然而我們希望能讓程序自動幫我們完成這個過程。
其實思路也很簡單,1.先判斷 div目錄是否存在,不存在則創建;2.判斷子目錄 div/css 是否存在,不能存在則創建,3.在第二步中以子目錄作為參數遞歸調用函數本身。也可以按相反順序來,1.先判斷最底層目錄div/css/layout是否存在;2.判斷div/css/layout的上層目錄div/css是否存在,不存在則以div/css作為參數遞歸進行。。
下面是php函數mkdir的程序代碼:
- function mkdirs($dir)
- {
- if(!is_dir($dir))
- {
- if(!mkdirs(dirname($dir))){
- return false;
- }
- if(!mkdir($dir,0777)){
- return false;
- }
- }
- return true;
- }
- mkdirs('div/css/layout');
- 同樣的思路,php用rmdir和unlink遞歸刪除多級目錄的代碼:
- function rmdirs($dir)
- {
- $d = dir($dir);
- while (false !== ($child = $d->read())){
- if($child != '.' && $child != '..'){
- if(is_dir($dir.'/'.$child))
- rmdirs($dir.'/'.$child);
- else unlink($dir.'/'.$child);
- }
- }
- $d->close();
- rmdir($dir);
- }
以上代碼示例就是php函數mkdir實現創建多級目錄的具體方法。