php mkdir創建目錄只能一級級創建目錄了,如果多級我們需要遞歸遍歷來創建目錄哦,下面我給大家介紹此函數的一些使用技巧吧。
先介紹一下 mkdir() 這個函數
mkdir($path,0777,true);
第一個參數:必須,代表要創建的多級目錄的路徑;
第二個參數:設定目錄的權限,默認是 0777,意味著最大可能的訪問權;
第三個參數:true表示允許創建多級目錄。
mkdir($dir,$mode);但是它每次只能創建一個目錄,也就是說它不能一次創建多級目錄,如下
mkdir('aa'); //就只能創建一個aa目錄了
mkdir('aa/bb/cc');//如果有aa/bb目錄就可以成功創建cc目錄否則會報錯哦,如果要創建多目錄我們看下面代碼
舉例代碼(支持創建中文目錄):
代碼如下 復制代碼<?php
header("Content-type:text/html;charset=utf-8");
//要創建的多級目錄
$path="dai/php/php學習";
//判斷目錄存在否,存在給出提示,不存在則創建目錄
if (is_dir($path)){
echo "對不起!目錄 " . $path . " 已經存在!";
}else{
//第三個參數是“true”表示能創建多級目錄,iconv防止中文目錄亂碼
$res=mkdir(iconv("UTF-8", "GBK", $path),0777,true);
if ($res){
echo "目錄 $path 創建成功";
}else{
echo "目錄 $path 創建失敗";
}
}
?>
再看一個遞歸創建目錄的實例
小編整理了兩個可以遞歸創建目錄的方法供大家參考學習,謝謝啦!
代碼如下 復制代碼<?php
/*
*mkdir($dir,$mode)
*PHP 遞歸創建目錄
*/
function mkdirs($dir, $mode = 0777)
{
if (is_dir($dir) || @mkdir($dir, $mode)){
return true;
}
if (!mkdirs(dirname($dir), $mode)){
return false;
}
return @mkdir($dir, $mode);
}
function mkdirs($dir, $mode = 0777)
{
$dirArray = explode("/",$dir);
$dirArray = array_filter($dirArray);
$created = "";
foreach($dirArray as $key => $value){
if(!empty($created)){
$created .= "/".$value;
if(!is_dir($created)){
mkdir($created,$mode);
}
}else{
if(!is_dir($value)){
mkdir($value,$mode);
}
$created .= $value;
}
}
}
?>
//代碼應用實例
$path="abc/ff/ss/";
mkdirs($path,$mode = 0777);
上邊介紹的就是php遞歸創建目錄和多級目錄的內容