PHPは、数値的にディレクトリ内のすべてのファイルの名前を変更します

StackOverflow https://stackoverflow.com/questions/4207319

  •  25-09-2019
  •  | 
  •  

質問

私は、ファイルが1-14名前を変更したい(数5を言う)

私は、ファイルをアップロードし、数値的にそれらに名前を付けるためのスクリプトを持っている(1-15を言う)とするとき、私はファイルを削除します。私は、ファイル9と下を削除した場合、それは、複数のファイルを消去し10以上の私が削除どちらかといえば、これは大丈夫動作します。私の知る限り、問題は削除していないですが、言うことができるように名前を変更

ここでは、スクリプトの一部は、私はとのトラブルを抱えているのです

unlink($path.$img);

$files = natsort(glob("$path/*.jpg"));

$num = 1;

foreach($files as $file) {
  $new = 'photo' . $num . '.jpg'; 
  rename($file, dirname($file).'/'.$new);
  $num++;
}

ありがとうございます。

役に立ちましたか?

解決

php.net

から

作業例

 <?php 
$path = "E:\\SERVER\\sudhir\\songs"; 
$dh = opendir($path); 
$i=1; 
while (($file = readdir($dh)) !== false) { 
    if($file != "." && $file != "..") { 
        echo "<br/>".substr($path."\\".$file, 0,-3)."_mysongs_mp3"; 
        rename($path."\\".$file, substr($path."\\".$file, 0,-3)."_mysongs_mp3"); 
        $i++; 
    } 
} 
closedir($dh); 
?>

他のヒント

あなたが名前を変更している間、あなたはファイルを上書きしているためです。

:ファイル11を削除した後、

以下のファイルリストを想像してみて

1
10
12
2
3
4
5
...

あなたは今、名前の変更を開始した場合、次のことが起こります:

1 -> 1
10 -> 2
12 -> 3
2 -> already overwritten by 10!

一つの解決策:ソートリネーム前natsort($files)を使用して、アレイ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top