批量去除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+MYSQL开发工具及资源收藏
Jan 02 PHP
PHP header函数分析详解
Aug 06 PHP
php截取后台登陆密码的代码
May 05 PHP
apache php模块整合操作指南
Nov 16 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
Laravel 前端资源配置教程
Oct 18 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 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使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
php检查页面是否被百度收录
2015/10/28 PHP
PHP自定义多进制的方法
2016/11/03 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
使用python为mysql实现restful接口
2018/01/05 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
Pytest如何使用skip跳过执行测试
2020/08/13 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
锐步英国官网:Reebok英国
2019/11/29 全球购物
职工代表大会主持词
2014/04/01 职场文书
股东协议书范本
2014/04/14 职场文书
合伙经营协议书范本
2014/04/18 职场文书
林肯就职演讲稿
2014/05/19 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
2014年护理部工作总结
2014/11/14 职场文书
2015年清明节活动总结
2015/02/09 职场文书
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python