php中mkdir函數遞迴建立目錄(檔案夾)_PHP教程

來源:互聯網
上載者:User
在php中mkdir函數是建立目錄它自身是不可以遞迴建立目錄了,我們需要遍曆進行目錄然後調用mkdir即可,下面來看一下操作方法。

代碼如下 複製代碼

/**
* Makes directory and returns BOOL(TRUE) if exists OR made.
*
* @param $path Path name
* @return bool
*/
function rmkdir($path, $mode = 0755) {
$path = rtrim(preg_replace(array("/\\/", "//{2,}/"), "/", $path), "/");
$e = explode("/", ltrim($path, "/"));
if(substr($path, 0, 1) == "/") {
$e[0] = "/".$e[0];
}
$c = count($e);
$cp = $e[0];
for($i = 1; $i < $c; $i++) {
if(!is_dir($cp) && !@mkdir($cp, $mode)) {
return false;
}
$cp .= "/".$e[$i];
}
return @mkdir($path, $mode);
}

?>

例2

Somehow the recursive version of mkdir didn't work for me on Mac and the workaraounds listed

below alsow didn't work for me, so heres my solution:

代碼如下 複製代碼

function mkdir_r($dirName, $rights=0777){
$dirs = explode('/', $dirName);
$dir='';
foreach ($dirs as $part) {
$dir.=$part.'/';
if (!is_dir($dir) && strlen($dir)>0)
mkdir($dir, $rights);
}
}
?>

Tested and works ;)


例3

代碼如下 複製代碼

function mkdirs($dir)

{

if(!is_dir($dir))

{

if(!mkdirs(dirname($dir))){

return false;

}

if(!mkdir($dir,0777)){

return false;

}

}

return true;

}

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);

}


三個建立目錄的函數都有自己的優點,這裡我也沒有一個個測試了,只使用了第二個感覺非常的不錯。

http://www.bkjia.com/PHPjc/633126.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633126.htmlTechArticle在php中mkdir函數是建立目錄它自身是不可以遞迴建立目錄了,我們需要遍曆進行目錄然後調用mkdir即可,下面來看一下操作方法。 例 代碼如...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.