1

3つの数字の組み合わせごとにいくつかの関数mkdirフォルダーを実行したい。たとえば、502341 は新しい forderをmkdirし502/341ます。10/023/049/132number_formatexplodeexplode

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のはオプション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 
于 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 に答える