自己写的一个文件编码批量转换工具(php实现)
2026-05-02 11:34:07
190
分类:php
文件编码批量转换,下面是将GB2312转为UTF-8
//检测文件编码
function detect_encoding($str) {
$list = array('GB2312','GBK', 'UTF-8');
foreach ($list as $item) {
$tmp = mb_convert_encoding($str, $item, $item);
if (md5($tmp) == md5($str)) {
return $item;
}
}
return null;
}
//遍历文件夹
function transformFolder($oldDir){
if (!is_dir($oldDir)) {
return false;
}
$dirHandle = opendir($oldDir);
while (false !== ($file = readdir($dirHandle))) {
if ($file == '.' || $file == '..') {
continue;
}
$old=$oldDir.'/'.$file;
if (!is_dir($old)) {
$input=$old;
$ext=get_extension($input);
//后缀过滤
if($ext=='php'||$ext=='html'){
//批量转换编码
$contents_before = file_get_contents($input);
if(detect_encoding($contents_before)=='UTF-8'){continue;}
$contents_after = iconv('GB2312','UTF-8//IGNORE',$contents_before);
if($contents_after){
file_put_contents($input, $contents_after);
}
}
}
else{
transformFolder($old);
}
}
closedir($dirHandle);
return true;
}
//获取扩展名
function get_extension($file){
return substr(strrchr($file, '.'), 1);
}