<?
// 文件编码转换.
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 ( ' /(sets+namess+)' ' . 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 " );
?>