我想为每3个数字组合做一些函数mkdir文件夹。例如,502341将mkdir一个新的forder 502/341
,10023049132将mkdir一个新的forder 10/023/049/132
我使用number_format
和explode
,我的问题是如何检查有多少单位explode
和怀疑
if(!is_dir(dirname(__FILE__) . '/'.$bbb[0])){
mkdir(dirname(__FILE__) . '/'.$bbb[0],0777);
}
$aaa = '502341';//10023049132
$bbb = explode(',',number_format($aaa));
echo $bbb[0];
if(!is_dir(dirname(__FILE__) . '/'.$bbb[0])){
mkdir(dirname(__FILE__) . '/'.$bbb[0],0777);
}
if(!is_dir(dirname(__FILE__) . '/'.$bbb[0]. '/'.$bbb[1])){
mkdir(dirname(__FILE__) . '/'.$bbb[0]. '/'.$bbb[1],0777);
}
...//how to check more $bbb[2], $bbb[3] or even more?
答案 0 :(得分:3)
您需要的只是chunk_split
和mkdir
recursive
选项
$path = __DIR__;
if (! is_writable($path))
trigger_error("$path is not writeable");
$str = "502341";
$arr = chunk_split($str, 3, "/");
mkdir($path . DIRECTORY_SEPARATOR . $arr, 0777, true);
^--------- Recrusive
答案 1 :(得分:0)
您正在寻找 str_split()
。确保事先验证输入!
答案 2 :(得分:0)
使用mkdir(http://php.net/manual/en/function.mkdir.php)的递归模式允许创建嵌套目录
答案 3 :(得分:0)
我会使用递归文件夹创建。例如:
<?php
$aaa = "502341";
$bbb = explode(',',number_format($aaa));
print count($bbb); // prints the depth of your folder tree
mkdir(implode("/",$bbb), 0644, true); // creates recursive folder
?>
其中0644是该文件夹的权限。根据您的需要进行相应设置。