批量去除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 相关文章推荐
Ajax PHP分页演示
Jan 02 PHP
php连接mysql数据库代码
Mar 10 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
php实现两个数组相加的方法
Feb 17 PHP
PHP中使用BigMap实例
Mar 30 PHP
详解PHP数组赋值方法
Nov 07 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
iOS10推送通知开发教程
Sep 19 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
Oct 08 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 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中$_SERVER的详细参数与说明
2008/07/29 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
深入理解Vuex 模块化(module)
2017/09/26 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
出国留学自荐信
2013/10/25 职场文书
调研座谈会发言材料
2014/08/23 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
高中生毕业评语
2014/12/30 职场文书
北京导游词
2015/02/12 职场文书
行政司机岗位职责
2015/04/10 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书