Home > Article > Backend Development > PHP batch conversion method for encoding all files in a folder
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='gbk',$output_encoding='utf-8') { 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('CP936','ASCII','GBK','GB2312','UTF-8')); echo $encoding; if($encoding=='UTF-8') mb_detect_encoding函数不工作 { return; }*/ $contents_after = iconv($input_encoding,$output_encoding,$contents_before); file_put_contents($filename, $contents_after); } } else { echo '参数错误'; return false; } } iconv_file('./test'); ?>
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!