PHPを使用してフォルダ内のファイルの名前を一括変更しようとしています。アクセント付きの文字に問題がありますが、ほとんど機能しています。
アクセント付き文字を含むファイル名の例は。ですÅRE_GRÖN.JPG
。
そのファイルの名前をに変更したいと思いますARE_GRON.JPG
。
このようにファイルを読んだ場合:
<?php
$path = __DIR__;
$dir_handle = opendir($path);
while ($file = readdir($dir_handle)) {
echo $file . "\n";
}
closedir($dir_handle);
...そしてページが表示されますAÌŠRE_GRÖN.JPG
。
スクリプトの先頭に追加header('Content-Type: text/html; charset=UTF-8');
すると、正しいファイル名が表示されますが、rename()
どちらの方法でも関数は効果がないようです。
これが私が試したことです:
while ($file = readdir($dir_handle)) {
rename($file, str_replace('Ö', 'O', $file)); # No effect
rename($file, str_replace('Ö', 'O', $file)); # No effect
}
どこが間違っているのですか?
私がその仕事に間違ったツールを使用していると思われる場合は、言ってください。誰かがBashスクリプトでこれを達成する方法を知っているなら、私に見せてください。バッシュチョップはありません。