PHP批量修改静态html文件编码的例子
发布:smiling 来源: PHP粉丝网 添加日期:2014-06-21 08:48:48 浏览: 评论:0
一堆的文件编码都是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');
Tags: PHP修改静态html文件
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)