1.使用遞歸的思想
function mkdirs_2($path){ if(!is_dir($path)){ mkdirs_2(dirname($path)); if(!mkdir($path, 0777)){ return false; } } return true; } /* http://www.manongjc.com/article/1331.html */ $path2 = 'sdfs/sds/sds/s/s/sss'; var_dump(mkdirs_2($path2)); //true;
1.思想主要是利用了遞歸, 先創建dir, 在創建dir/css ,在創建….
2.遞歸就是入棧的過程, 所以先讓,dir/css/js/php/ok 先入棧, 則它會最後出棧…其它的就不說了.
3.dirname(path)返回的是path中除了最後一個目錄的值, 即第一次返回是: dir/css/js/php,,,第二次返回 dir/css/js,,,最後一次是 ./
2.直接利用mkdir()創建, 第三個參數必須是true才能自動創建多級目錄
function mkdirs_1($path, $mode = 0777){ if(is_dir($path)){ return '無法創建,已經是目錄了'; }else{ if(mkdir($path, $mode, true)) { return '創建成功'; }else{ return '創建失敗'; } } } /* http://www.manongjc.com/article/1332.html */ $path1 = 'a/b/c/d/e'; var_dump(mkdirs_1($path1)); //string '創建成功' (length=12)