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 相关文章推荐
图书管理程序(二)
Oct 09 PHP
php 无限分类的树类代码
Dec 03 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 PHP
PHP实现考试倒计时功能代码
Apr 16 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
图解上海144收音机
2021/03/02 无线电
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
PHP面向对象法则
2012/02/23 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
js获取div高度的代码
2008/08/09 Javascript
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
学习python处理python编码问题
2011/03/13 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
远程教育心得体会
2014/01/03 职场文书
小学生家长评语集锦
2014/01/30 职场文书
高中家长寄语
2014/04/02 职场文书
2014年网管工作总结
2014/12/11 职场文书
初三化学教学反思
2016/02/22 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
Opencv实现二维直方图的计算及绘制
2021/07/21 Python