1

我想为每 3 个数字组合做一些功能 mkdir 文件夹。例如, 502341 将 mkdir 一个新的 forder 502/341, 10023049132 将 mkdir 一个10/023/049/132我使用number_format的新 forder 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?
4

4 回答 4

3

您所需要的只是chunk_split和选项mkdirrecursive

$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 
于 2012-11-13T12:03:12.390 回答
0

你正在寻找str_split(). 确保事先验证输入!

于 2012-11-13T12:00:16.073 回答
0

使用 mkdir 的递归模式(http://php.net/manual/en/function.mkdir.php)允许创建嵌套目录

于 2012-11-13T12:01:38.353 回答
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 将是文件夹的权限。根据您的需要进行设置。

于 2012-11-13T12:02:21.493 回答