<?function file_iconv($fromcode,$tocode,$file){
$data = join('',file($file));
if(preg_match('/charset='.str_replace('-','\\-',$tocode).'/mis',$data)){
echo "<font color='red'>$file  $tocode .</font>";
}
$data = preg_replace('/charset='.str_replace('-','\\-',$fromcode).'/mis',"charset=$tocode",$data);
$data = preg_replace('/(set\s+names\s+)\''.str_replace('-','',$fromcode).'\'/mis',"\\1'".str_replace('-','',$tocode)."'",$data);
$data = iconv("$fromcode","$tocode",$data);
$fp = fopen("$file","w");
fwrite($fp,$data);
fclose($fp);
echo "$file ...<br>";
}function listfiles($dir="."){

$handle=opendir("$dir");
while ($file = readdir($handle)) {
if($file=="."||$file=="..")continue;
if(is_dir("$dir/$file")){
listfiles("$dir/$file");
}
else {
$ext = strtolower(strrchr($file,'.'));
if(in_array($ext,array(".php",".html",".htm"))){
file_iconv("gb2312","utf-8","$dir/$file");
}
}
}
closedir($handle);
}listfiles("mydir");
?>
把所有要转换的文件都放在 mydir 的目录下.
注意做好备份,这是在原文件的基础上改.

解决方案 »

  1.   


    <?function file_iconv($fromcode,$tocode,$file){
    $data = join('',file($file));
    if(preg_match('/charset='.str_replace('-','\\-',$tocode).'/mis',$data)){
    echo "<font color='red'>$file  $tocode .</font>";
    }
    $data = preg_replace('/charset='.str_replace('-','\\-',$fromcode).'/mis',"charset=$tocode",$data);
    $data = preg_replace('/(set\s+names\s+)\''.str_replace('-','',$fromcode).'\'/mis',"\\1'".str_replace('-','',$tocode)."'",$data);
    $data = iconv("$fromcode","$tocode",$data);
    $fp = fopen("$file","w");
    fwrite($fp,$data);
    fclose($fp);
    echo "$file ...<br>";
    }function listfiles($dir="."){

    $handle=opendir("$dir");
    while ($file = readdir($handle)) {
    if($file=="."||$file=="..")continue;
    if(is_dir("$dir/$file")){
    listfiles("$dir/$file");
    }
    else {
    $ext = strtolower(strrchr($file,'.'));
    if(in_array($ext,array(".php",".html",".htm"))){
    file_iconv("gb2312","utf-8","$dir/$file");
    }
    }
    }
    closedir($handle);
    }listfiles("mydir");
    ?>