2017-08-19 17 views
0
<?php 
    mkdir("testing", 0700); 
?> 

私はこのコードを使用して "testing"フォルダを作成できますが、このコードを実行して毎回フォルダを作成すると、最初にフォルダ名に自動的に番号が追加されることを願っています。PHPフォルダの作成(mkdir)フォルダ名に自動追加番号?

"1testing, 2testing, 3testing, 4testing.........." 

どのようにするのですか?

答えて

3

このコードが役に立ちますようお願いいたします。

このソリューションは非効率的だと思われるかもしれませんが、データベースに関与することなく確実に機能します。

注:これは、特定の名前までフォルダ名をチェックし続けますが他のそれはで終わるだろう、

<?php 
ini_set('display_errors', 1); 
$counter=1; 
$path="/path/to/folder/test"; 
while(is_dir($path)) 
{ 
    $path="/path/to/folder/{$counter}test"; 
    $counter++; 
} 
mkdir($path); 

これは、あなたが適切な権限を持っている唯一のディレクトリが作成されます利用可能です。

警告:ます。mkdir():許可がディレクトリにあなたのテストのフォルダ以外のフォルダがある場合、これも動作します

0

これを行う方法の1つは、データベーステーブルに最後のフォルダ番号を格納し、その値を取得してmkdir(i + "testing")のように使用することです。

0
$path_to_root_folder = "/"; 
$tmp_list = preg_filter('/^/', $path_to_root_folder, array_diff(scandir($path_to_root_folder), array('..', '.'))); 

$highest = 0; 
$folder_string = "testing"; 
foreach($tmp_list as $is_folder){ 
    if(is_dir($is_folder)){ 
     if(preg_match("#(\d+)testing#", $is_folder, $matched) && $matched[1] > $highest) 
      $highest = $matched[1]; 
    } 
} 
mkdir($path_to_root_folder.($highest+1).$folder_string); 

を否定しました。

関連する問題