加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-01-21 21:42:11 所属栏目:PHP教程 来源:互联网
导读:一堆的文件编码都是ANSI的,本来想用linux shell批量修改文件编码,却不太熟悉,写了个PHP脚本批量修改html文件的编码,代码如下: ?php //1.遍历出所有html文件 $dir = ./jquery/jquery/; //文件目录、 $move_to = ./jquery/jquery_new/; foreach(glob($dir .
  一堆的文件编码都是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编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读