批量去除PHP文件中bom的PHP代码


Posted in PHP onMarch 13, 2012

需要去除BOM,就把附件里的tool.php文件放到目标目录,然后在浏览器访问tool.php即可!

<?php 
//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除 
$basedir="."; //修改此行为需要检测的目录,点表示当前目录 
$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。 
//以下不用改动 
if ($dh = opendir($basedir)) { 
while (($file = readdir($dh)) !== false) { 
if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) 
echo "filename: $file ".checkBOM("$basedir/$file")." <br>"; 
} 
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.</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); 
} 
?>

PHP批量去除PHP文件中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); 
} 
?>
PHP 相关文章推荐
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
PHP中数组定义的几种方法
Sep 01 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 PHP
php简单实现sql防注入的方法
Apr 22 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
php实现session共享的实例方法
Sep 19 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
TMDPHP 模板引擎使用教程
Mar 13 #PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 #PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 #PHP
PHPThumb PHP 图片缩略图库
Mar 11 #PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 #PHP
PHP 代码规范小结
Mar 08 #PHP
色色整理的PHP面试题集锦
Mar 08 #PHP
You might like
php实现rc4加密算法代码
2012/04/25 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
Javascript 解疑
2009/11/11 Javascript
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
生成二维码方法汇总
2014/12/26 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
jquery实现文本框的禁用和启用
2016/12/07 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
python中pygame模块用法实例
2014/10/09 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
python 不以科学计数法输出的方法
2018/07/16 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
python数组循环处理方法
2019/08/26 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
Java语言程序设计测试题判断题部分
2013/01/06 面试题
如何写一份好的自荐信
2014/01/02 职场文书
学习新党章思想汇报
2014/01/09 职场文书
单位未婚证明范本
2014/01/18 职场文书
运动会100米解说词
2014/01/23 职场文书
数学教师求职信范文
2015/03/20 职场文书
导游词之唐山景点
2019/12/18 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python