我需要一個功能有助於創造一個2級目錄以下幾種情況:PHP創建嵌套目錄
- 所需的子目錄的父目錄存在,什麼也不做。
- 父目錄存在,子目錄不存在。只創建子目錄。
- 父目錄和子目錄都不存在,首先創建父目錄,然後創建子目錄。
- 如果任何目錄未成功創建,則返回FALSE。
感謝您的幫助。
我需要一個功能有助於創造一個2級目錄以下幾種情況:PHP創建嵌套目錄
感謝您的幫助。
使用mkdir()
第三個參數:
遞歸允許創建路徑名中指定的嵌套目錄。默認爲FALSE。
$path = '/path/to/folder/with/subdirectory';
mkdir($path, 0777, true);
您可以嘗試使用file_exists來檢查文件夾是否存在,並且is_dir
檢查文件夾是否存在。
if(file_exists($dir) && is_dir($dir))
並創建一個目錄,你可以使用mkdir
功能
然後你的問題的剩下的只是操縱這個以適應需求
參見mkdir
,特別是$recursive
參數。
您正在尋找的功能是MKDIR。 使用最後一個參數遞歸創建目錄。 read the documentation.
從PHP 5.0+開始mkdir有一個遞歸參數,它會創建任何缺失的父項。
// Desired folder structure
$structure = './depth1/depth2/depth3/';
// To create the nested structure, the $recursive parameter
// to mkdir() must be specified.
if (!mkdir($structure, 0744, true)) {
die('Failed to create folders...');
}
Returns TRUE on success or FALSE on failure.
遞歸允許指定路徑嵌套目錄的創建。 但沒有爲我工作! 因爲這是我想出的!它的工作非常完美!
$upPath = "../uploads/RS/2014/BOI/002"; // full path
$tags = explode('/' ,$upPath); // explode the full path
$mkDir = "";
foreach($tags as $folder) {
$mkDir = $mkDir . $folder ."/"; // make one directory join one other for the nest directory to make
echo '"'.$mkDir.'"<br/>'; // this will show the directory created each time
if(!is_dir($mkDir)) { // check if directory exist or not
mkdir($mkDir, 0777); // if not exist then make the directory
}
}
多少我遭受了..而得到這個腳本..
function recursive_mkdir($dest, $permissions=0755, $create=true){
if(!is_dir(dirname($dest))){ recursive_mkdir(dirname($dest), $permissions, $create); }
elseif(!is_dir($dest)){ mkdir($dest, $permissions, $create); }
else{return true;}
}
一個問題:當路徑已經存在,它會拋出一個錯誤。 –
@Paulocoghi你是對的。這種行爲不同於Linux的''mv',它只是簡單地忽略現有路徑 – KingCrunch
如果(!is_dir($ path))使用 } – Thyagi