Home  >  Article  >  Backend Development  >  PHP batch conversion method for encoding all files in a folder

PHP batch conversion method for encoding all files in a folder

小云云
小云云Original
2018-01-30 11:38:241608browse

If you have a GBK version and you want a UTF8 version or you only have the source code of GBK and you want secondary development, but you don’t want to change the IDE’s encoding method, you can use this program to batch convert it to UTF8.

Function code:


<?php
/**
 * 把一个文件夹里的文件全部转码 只能转一次 否则全部变乱码
 * @param string $filename
 */
function iconv_file($filename,$input_encoding=&#39;gbk&#39;,$output_encoding=&#39;utf-8&#39;)
{
  if(file_exists($filename))
  {
    if(is_dir($filename))
    {
      foreach (glob("$filename/*") as $key=>$value)
      {
        iconv_file($value);
      }
    }
    else
    {
      $contents_before = file_get_contents($filename);
      /*$encoding = mb_detect_encoding($contents_before,array(&#39;CP936&#39;,&#39;ASCII&#39;,&#39;GBK&#39;,&#39;GB2312&#39;,&#39;UTF-8&#39;));
      echo $encoding;
      if($encoding==&#39;UTF-8&#39;) mb_detect_encoding函数不工作
      {
        return;
      }*/
      $contents_after = iconv($input_encoding,$output_encoding,$contents_before);
      file_put_contents($filename, $contents_after);
    }
  }
  else
  {
    echo &#39;参数错误&#39;;
    return false;
  }
}
iconv_file(&#39;./test&#39;);
?>

Note: To transcode all the files in a folder, you can only transcode them once, otherwise they will all become garbled.

Related recommendations:

How to convert file encoding to UTF-8 in Linux

PHP converts all file encodings in the folder

PHP supports Chinese character interception functions for multiple file encodings

The above is the detailed content of PHP batch conversion method for encoding all files in a folder. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn