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 相关文章推荐
php读取数据库信息的几种方法
May 24 PHP
php 动态添加记录
Mar 10 PHP
php获取数组中重复数据的两种方法
Jun 28 PHP
php解决约瑟夫环示例
Apr 09 PHP
php提交post数组参数实例分析
Dec 17 PHP
PHP环境搭建的详细步骤
Jun 30 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
java解析json方法总结
May 16 PHP
PHP goto语句用法实例
Aug 06 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 分页原理分析,大家可以看看
2009/12/21 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
PHP中SESSION过期设置
2021/03/09 PHP
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[00:16]热血竞技场
2019/03/06 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python实现简单文本字符串处理的方法
2018/01/22 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
医生实习工作总结的自我评价
2013/09/27 职场文书
党员个人思想汇报
2013/12/28 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
对教师的评语
2014/04/28 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
看上去很美观后感
2015/06/10 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫