<?php
/**
* fromFile : 转换前的文件
* toFile : 转换后的文件
* toEncode : 转换后文件的编码
*/
function changeFileEncode($fromFile,$toFile,$toEncode="UTF-8"){
// 变换文件如果不存在,退出
if(!file_exists($fromFile)) {
return ;
}
// 文件转换
$data = file_get_contents($fromFile);
$fromEncode = mb_detect_encoding($data, array('UTF-8','EUC-JP','Shift-JIS'));
$content = mb_convert_encoding($data, $toEncode, $fromEncode);
// 输入文件如果存在先删除
if(file_exists($toFile)){
unlink($toFile);
}
// 写入输出文件
file_put_contents($toFile, $content);
}
/**
* fromFolder : 转换前的文件存放的文件夹
* toFolder : 转换后的文件存放的文件夹
* toEncode : 转换后文件的编码
*/
function changeFolderEncode($fromFolder,$toFolder,$toEncode="UTF-8"){
if(file_exists($toFolder) && is_dir($toFolder)){
if(is_dir($fromFolder)){
$handler = opendir($fromFolder);
while($filename = readdir($handler)) {
$fromFile = $fromFolder . "\\" . $filename;
$toFile = $toFolder . "\\" . $filename;
if(is_file($fromFile)){
changeFileEncode($fromFile, $toFile, $toEncode);
}
}
closedir($handler);
}
} else {
echo " toFolder is not exsit ! \n";
}
}
//==================================================================================
//==================================================================================
// 单个文件的转换
$fromFile = "f_find.xml";
$toFile = "00_f_find.xml";
changeFileEncode($fromFile, $toFile, "Shift-JIS");
// 文件夹门所有文件的转换
$fromFolder = "D:\\TEMP\\PHP\\sqlmap";
$toFolder = "D:\\TEMP\\PHP\\00_sqlmap";
changeFolderEncode($fromFolder,$toFolder,"UTF-8");
?>