PHP批量去除BOM头内容信息代码


Posted in PHP onMarch 11, 2016

什么是bom头?

在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。

批量去除bom头代码如下所示:

<?php 
if (isset($_GET['dir'])){ //设置文件目录 
$basedir=$_GET['dir']; 
}else{ 
$basedir = '.'; 
} 
$auto = 1; 
checkdir($basedir); 
function checkdir($basedir){ 
if ($dh = opendir($basedir)) { 
while (($file = readdir($dh)) !== false) { 
if ($file != '.' && $file != '..'){ 
if (!is_dir($basedir."/".$file)) { 
echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>"; 
}else{ 
$dirname = $basedir."/".$file; 
checkdir($dirname); 
} 
} 
} 
closedir($dh); 
} 
} 
function checkBOM ($filename) { 
global $auto; 
$contents = file_get_contents($filename); 
$charset[1] = substr($contents, 0, 1); 
$charset[2] = substr($contents, 1, 1); 
$charset[3] = substr($contents, 2, 1); 
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { 
if ($auto == 1) { 
$rest = substr($contents, 3); 
rewrite ($filename, $rest); 
return ("<font color=red>BOM found, automatically removed._<a href=http://www.joyphper.net>http://www.joyphper.net</a></font>"); 
} else { 
return ("<font color=red>BOM found.</font>"); 
} 
} 
else return ("BOM Not Found."); 
} 
function rewrite ($filename, $data) { 
$filenum = fopen($filename, "w"); 
flock($filenum, LOCK_EX); 
fwrite($filenum, $data); 
fclose($filenum); 
} 
?>

PS:去掉bom头的办法,简单的是下面两种:

1、editplus去BOM头的方法

编辑器调整为UTF8编码格式后,保存的文件前面会多出一串隐藏的字符(也即是BOM),用于编辑器识别这个文件是否是以UTF8编码。

运行Editplus,点击工具,选择首选项,选中文件,UTF-8标识选择 总是删除签名,

然后对PHP文件编辑和保存后的PHP文件就是不带BOM的了。

2、ultraedit去除bom头办法

打开文件后,另存为选项的编码格式里选择(utf-8 无bom头),确定就ok了

怎么样,去掉bom头很简单吧

再来一段议论utf8的BOM信息的

BOM是指php文件本身的存储方式为带BOM的UTF-8,普通页面的中文乱码方式一般不是由这个原因导致的。

header("Content-type: text/html; charset=utf-8");

这句话控制html输出页面的编码方式,

BOM只有在WINDOWS下采用“记事本”存储为UTF-8时才会有,这个可以用WINHEX把开始的2个字节删掉。

在dreamweaver里面编码设置里面可以设置是否带BOM,一般只要php输出的不是图片(GDI Stream),BOM都不会导致问题。
GDI Stream如果开头有了额外的 字符就会显示为 红叉。

PHP 相关文章推荐
Apache设置虚拟WEB
Oct 09 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
php url路由入门实例
Apr 23 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
提高php编程效率技巧
Aug 13 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
php版微信公众平台实现预约提交后发送email的方法
Sep 26 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
PHP回调函数概念与用法实例分析
Nov 03 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 #PHP
php实现无限级分类查询(递归、非递归)
Mar 10 #PHP
Zend Framework教程之Application和Bootstrap用法详解
Mar 10 #PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 #PHP
PHP浮点数的一个常见问题
Mar 10 #PHP
简单谈谈php浮点数精确运算
Mar 10 #PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 #PHP
You might like
php getsiteurl()函数
2009/09/05 PHP
php设计模式 Adapter(适配器模式)
2011/06/26 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
event.srcElement+表格应用
2006/08/29 Javascript
Javascript 解疑
2009/11/11 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
浅析Python 中整型对象存储的位置
2016/05/16 Python
django框架自定义用户表操作示例
2018/08/07 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
介绍一下.net和Java的特点和区别
2012/09/26 面试题
Why do we need Unit test
2013/01/03 面试题
领导视察欢迎词
2014/01/15 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
小学生优秀评语大全
2014/04/22 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
航班延误投诉信
2015/07/02 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书