我需要一个功能有助于创造一个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