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 set_time_limit(0)长连接的实现分析
Mar 02 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
PHP 遍历文件实现代码
May 04 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
php编写的简单页面跳转功能实现代码
Nov 27 PHP
php学习笔记之面向对象
Nov 08 PHP
用php守护另一个php进程的例子
Feb 13 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
Yii数据读取与跳转参数传递用法实例分析
Jul 12 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 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针对cookie操作的队列操作类实例
2014/12/10 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
比Jquery的document.ready更快的方法
2010/04/28 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
教师评优事迹材料
2014/01/10 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书