一、基本介紹
mkdir() 函數在指定的路徑創建一個新目錄。
該函數的基本語法如下:
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
參數解釋:
- pathname: 必選參數,規定要創建目錄的路徑。
- mode: 可選參數,規定目錄的權限。默認是 0777,意味所有用戶都有完全的訪問權限。
- recursive: 可選參數,規定是否設置遞歸屬性。默認為 false。
- context: 可選參數,規定文件句柄的環境。
二、使用方法
1. 創建一個新目錄
下面這個例子演示了,在當前目錄創建一個名為 “test” 的新目錄:
if(!is_dir("test")){ mkdir("test"); }
2. 設置權限
默認情況下,所有用戶都有完全的讀、寫、執行權限。
但是,為了更加安全,您應該儘可能的限制訪問權限。通過傳遞一個 mode 參數來完成這個任務。
下面這個例子,創建一個新目錄 “test”,而且設置了權限為 0755:
if(!is_dir("test")){ mkdir("test",0755); }
3. 創建多級目錄
如果要在指定目錄的新目錄中創建子目錄,可以將 recursive 參數設置為 true。
下面這個例子將在 “test” 目錄中創建多級子目錄 “demo1/demo2/demo3″:
$dir="./test/demo1/demo2/demo3"; if(!file_exists($dir)){ mkdir($dir,0777,true); }
4. 創建目錄上下文
了解上下文選項的作用,請參閱下面這個例子,它為 mkdir() 創建一個新的目錄上下文:
//設置上下文選項 $context=stream_context_create(array( 'http'=>array( 'method'=>'GET' ) )); if(!file_exists($dir)){ mkdir($dir,0777,true,$context); }
三、錯誤處理
mkdir() 遇到錯誤時會返回 false,並返回一個錯誤。
下面的例子演示了當試圖在不存在的目錄中創建一個新的目錄時,系統返回的錯誤:
if(!file_exists("test")){ mkdir("test/demo1/demo2/demo3",0777,true); } else{ echo("The name already exists."); }
如果您的 PHP 版本低於 5.2.0,則無法使用遞歸屬性。在這種情況下,您可以使用下面這個例子中的自定義函數來模仿遞歸屬性:
function createFolder($folderPath){ if (!file_exists($folderPath)){ createFolder(dirname($folderPath)); mkdir($folderPath, 0777); } }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/300678.html