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 = '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' );查看更多关于PHP批量修改静态html文件编码的例子 - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30188