首页 > php代码 > PHP批量修改静态html文件编码的例子

PHP批量修改静态html文件编码的例子

一堆的文件编码都是ANSI的,本来想用linux shell批量修改文件编码,却不太熟悉,写了个PHP脚本批量修改html文件的编码

<?php
//1.遍历出所有html文件
$dir = './jquery/jquery/'; //文件目录、
$move_to = './jquery/jquery_new/';
foreach (glob($dir . '*.htm*') as $html) {
    //读取文件
    $fp = fopen($html, 'a+');
    $html_string = fread($fp, filesize($html));
    //转码操作
    $html_string = str_replace('charset=gb2312', 'charset=UTF-8', $html_string);
    $file_code = mb_detect_encoding() ($html_string, array(
        'UTF-8',
        'GBK',
        'LATIN1',
        'BIG5'
    ));
    if ($file_code = 'CP936') {
        $html_string = mb_convert_encoding($html_string, 'utf-8', 'gbk');
    }
    //获取文件名
    $slice = explode('/', $html);
    $file_name = end($slice);
    //移到新文件
    file_put_contents($move_to . $file_name, $html_string);
    fclose($fp);
}
echo 'ok, 执行完成';
?>

其实主要用到mb_detect_encoding检测编码;使用mb_convert_encoding转换编码;这是mbstring扩展的函数

<?php
/**
 * 检测编码
 * string mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]] )
 *
 * @param $str 要检测的字符串
 * @param $encoding_list 检测编码的顺序
 * @param $strict 是否严格检测编码
 */
$str = 'http://www.phprm.com-php入门';
echo $file_code = mb_detect_encoding($str, array(
    'UTF-8',
    'GBK',
    'LATIN1',
    'BIG5'
)); //UTF-8
/**
 * 转换编码
 * string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
 *
 * @param $str 要转换的字符串
 * @param $to_encoding 转换后的字符串
 * @param $from_encoding
 */
echo mb_convert_encoding($str, 'GBK', 'UTF-8');
?>


教程链接:http://www.phprm.com/code/59713.html

随意转载~但请保留教程地址★

标签:foreach explode fopen

相关文章

发表留言