我正在尝试批量重命名PHP文件夹中的文件。虽然我在重音字符方面存在问题,但它大部分都在工作。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脚本实现这一点,请告诉我。我没有Bash印章。
你在Windows或Linux? – hek2mgl 2013-02-12 21:54:39
您的PHP脚本是否编码为UTF-8? – 2013-02-12 21:56:05
既然他说bash,我想他是指bash(1),这将建议Lunix。 – 2013-02-12 21:56:21