以递归方式转换文件

时间:2017-07-07 21:57:02

标签: php encoding utf-8 character-encoding file-encodings

在这里,我找到了一个很好的解决方案,用于递归地更改一个文件夹Randomseed solution的文件的编码

$path = realpath('C:\\your\\path');

$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($path), 
    RecursiveIteratorIterator::SELF_FIRST
);

foreach($iterator as $fileName => $file){
    if($file->isFile())
        file_put_contents(
            $fileName,
            iconv('ISO-8859-7', 'UTF-8', file_get_contents($fileName))
        );
}

但是有一个问题。每个文件都会更改,甚至是图像,以后也不会显示。 如何编辑它以仅更改.php个文件?

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您只想循环遍历.php文件,只需查看文件的扩展名即可。

    foreach($iterator as $fileName => $file){
    if($file->isFile() && $file->getExtension() == "php")
        file_put_contents(
            $fileName,
            iconv('ISO-8859-7', 'UTF-8', file_get_contents($fileName))
        );
   }