好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP批量修改静态html文件编码的例子 - php高级应用

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高级应用的详细内容...

  阅读:52次