程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中mkdir函數遞歸創建目錄(文件夾)

php中mkdir函數遞歸創建目錄(文件夾)

編輯:關於PHP編程

在php中mkdir函數是創建目錄它自身是不可以遞歸創建目錄了,我們需要遍歷進行目錄然後調用mkdir即可,下面來看一下操作方法。

 代碼如下 復制代碼

<?php
/**
 * 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:

 代碼如下 復制代碼

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

    }


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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved