0

この方法で一括名前変更を作成しようとしています:

if ($handle = opendir('../../upload_files')) {
  while (false !== ($fileName = readdir($handle))) {
    $newName = str_replace(", ","_",$fileName);
    rename($fileName, $newName);
    $count++;
  }
  closedir($handle);
  echo $count." files renamed";
}

しかし、スクリプトを実行すると、次の警告が表示されます。

Warning: rename(..,..) [function.rename]: No error in E:\WEBS\rename.php on line 6

エラーの原因は何ですか?

4

1 に答える 1

0

対象ファイルが既に存在する場合、PHP は Windows 環境でこのようなエラーが発生することが知られています。

PHP 5.3 https://bugs.php.net/bug.php?id=48771には既知のバグがあり、同様のエラー メッセージが表示されます。

コードを次のように変更してみることをお勧めします (コードに基づいており、いくつかの修正が加えられています)。

$dir = "../../upload_files";
if ($handle = opendir($dir))
{
    while (false !== ($fileName = readdir($handle)))
    {
        if (!isset($count)) $count = 0;
        if ($fileName == ".." || $fileName == ".") continue;
        $newName = str_replace(", ","_",$fileName);
        copy($dir.$fileName, $dir.$newName);
        $count++;
    }
    closedir($handle);
    echo $count." files renamed";
}
于 2013-03-18T01:24:30.587 に答える