如何運(yùn)用php函數(shù)mkdir創(chuàng)建多級(jí)目錄
當(dāng)我們想在自己的網(wǎng)站上添加多級(jí)目錄時(shí),可以使用php函數(shù)mkdir來(lái)實(shí)現(xiàn)這以功能。下面我們將會(huì)為大家詳細(xì)介紹php函數(shù)mkdir的具體含義,希望對(duì)有這方面需求的朋友有所幫助。
#t#php函數(shù)mkdir參數(shù)與描述
path 必需。規(guī)定要?jiǎng)?chuàng)建的目錄的名稱。
mode 必需。規(guī)定權(quán)限。默認(rèn)是 0777。
recursive 必需。規(guī)定是否設(shè)置遞歸模式。
context 必需。規(guī)定文件句柄的環(huán)境。Context 是可修改流的行為的一套選項(xiàng)。
說(shuō)明
php函數(shù)mkdir 嘗試新建一個(gè)由 path 指定的目錄。
默認(rèn)的 mode 是 0777,意味著***可能的訪問(wèn)權(quán)。
php默認(rèn)的mkdir一次只能創(chuàng)建一層目錄,如果在當(dāng)前目錄下創(chuàng)建一個(gè)div/css/layout 的目錄就需要逐層逐層的先創(chuàng)建div,再創(chuàng)建div/css 再創(chuàng)建 div/css/layout,然而我們希望能讓程序自動(dòng)幫我們完成這個(gè)過(guò)程。
其實(shí)思路也很簡(jiǎn)單,1.先判斷 div目錄是否存在,不存在則創(chuàng)建;2.判斷子目錄 div/css 是否存在,不能存在則創(chuàng)建,3.在第二步中以子目錄作為參數(shù)遞歸調(diào)用函數(shù)本身。也可以按相反順序來(lái),1.先判斷***層目錄div/css/layout是否存在;2.判斷div/css/layout的上層目錄div/css是否存在,不存在則以div/css作為參數(shù)遞歸進(jìn)行。。
下面是php函數(shù)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遞歸刪除多級(jí)目錄的代碼:
- 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函數(shù)mkdir實(shí)現(xiàn)創(chuàng)建多級(jí)目錄的具體方法。