PHPは、数値的にディレクトリ内のすべてのファイルの名前を変更します
質問
私は、ファイルが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)
を使用して、アレイ
所属していません StackOverflow