PHP中使用mkdir建立多級目錄的方法

2021-06-20 11:47:17 字數 2165 閱讀 7622

function mkdirs($dir)

if(!mkdir($dir,0777))

}chmod($dir, 777);    //給目錄操作許可權

return true; 

}開始時我認為,只要給乙個路徑,mkdir就可以建立資料夾,但是事實並不是那樣,單個的mkdir只能建立一級目錄,對於多級的就不行了。

那如何用mkdir來建立呢?先我抄一段手冊上的有關mkdir的描述,如下:

bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

嘗試新建乙個由 pathname 指定的目錄。

注意也許想用八進位制數指定模式,也就是說該數應以零打頭。模式也會被當前的 umask 修改,可以用 umask() 來改變。

注意: mode 在 windows 下被忽略。自 php 4.2.0 起成為可選項。

預設的 mode 是 0777,意味著最大可能的訪問權。有關 mode 的更多資訊請閱讀 chmod() 頁面。 例 1. mkdir() 例子

<?php

mkdir("/path/to/my/dir", 0700);

?>

如果成功則返回 true,失敗則返回 false。

注意: 自 php 5.0.0 rmdir() 也可用於某些 url 封裝協議。參見附錄 n 的列表看看 rmdir() 支援哪些 url 封裝協議。 

注意: 對 context 的支援是 php 5.0.0 新增的。有關 context 的說明見參考 clx, stream functions。

注意: recursive 引數是 php 5.0.0 新增的。 

注意: 當安全模式被啟用時,php 將檢查被操作的目錄是否和正在執行的指令碼有相同的 uid(所有者)。

以上是php5手冊上的描述資訊,即你可以這樣:mkdir('./test',0777)就能建立乙個資料夾了。但是如何遞迴建立多級目錄呢?

其方式有:

php5 下建立目錄函式 mkdir 增加了乙個新的引數 recursive ,通過設定 recursive 為 true 可以實現遞迴建立目錄的目的,但是對php4就不行了。

這裡,我對第二種方式作一點說明,也有兩種方式,如下:

function mkdirs($dir, $mode = 0777)

說明: 

1.首先 簡單說一下mkdir()與mkdirs()的區別,以及,is_dir和dirname():

mkdir() 只能在已經存在的目錄中建立建立資料夾(即父級必須有才行)。 

mkdirs() 可以在不存在的目錄中建立資料夾。諸如:a\\b,既可以建立多級目錄。

dirname()是返回路徑中的目錄部分。

is_dir()用於判斷給出的檔名是否是乙個有效的目錄

2.大致流程為:

(1) 先用is_dir判斷是否已是乙個資料夾,如果是則返回true。如沒有(或者不是資料夾),則試著建立它,當然有可以父級不存在,那mkdir直接就創不成功,但也為不報錯,所以就用@來抑止報非致命錯誤。

(2)如果傳引數都不滿足條件,那麼就進入第二個if語句,先是取得路徑中的目錄部分,當然有可能是不存在的多級父級,所以用了mkdirs()來先建立父級,如果成功(不成功返回false),那麼再用mkdir來建立最終的目錄了。

好了,以上就是第一種方案。

(說明:此方案是相當的精簡,那是相當的不錯的方案,推薦使用它)

function create_folders($dir

)

說明:大致流程:得到路徑後,先判斷是否已是乙個有效的檔案目錄,如是則返回,結束程式。如果不是,(由於這裡用了or作先擇性的條件,即只要滿足其中乙個條件就行),則遞迴再呼叫自身,並且傳入的路徑中,少一級目錄。這樣來先回到上級有的父級目錄中,再用mkdir來建立下一級的。

好了,以上就是用php來建立資料夾(以及多級資料夾)的方法。^_^

1.用php5中自帶的mkdir 中的乙個新的引數 recursive ,通過設定 recursive 為 true 可以實現遞迴建立目錄的目的,但是對php4就不行了。

2.自己寫的方法中,用mkdirs來建立多級父級目錄方式

3.仍然可以用mkdir很巧妙的來建立多級資料夾。

PHP中使用mkdir建立多級目錄的方法

function mkdirs dir if mkdir dir,0777 chmod dir,777 給目錄操作許可權 return true 開始時我認為,只要給乙個路徑,mkdir就可以建立資料夾,但是事實並不是那樣,單個的mkdir只能建立一級目錄,對於多級的就不行了。那如何用mkdir來建...

php利用mkdir建立多級目錄

先介紹一下 mkdir 這個函式 mkdir path,0777,true 第乙個引數 必須,代表要建立的多級目錄的路徑 第二個引數 設定目錄的許可權,預設是 0777,意味著最大可能的訪問權 第三個引數 true表示允許建立多級目錄。舉例 支援建立中文目錄 header content type ...

PHP使用mkdir建立多級目錄的方法

php中使用mkdir 可以建立多級目錄,相比之前自己一級一級的建立,這個函式非常好用。下面是php手冊上的函式介紹 bool mkdir string pathname int mode 0777 bool recursive false resource context 返回值為bool型別。第...