批量去除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随机显示图片的简单示例
Feb 15 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
php银联网页支付实现方法
Mar 04 PHP
apache和PHP如何整合在一起
Oct 12 PHP
PHP实现递归无限级分类
Oct 22 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
May 18 PHP
PHP构造二叉树算法示例
Jun 21 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 PHP
PHP设计模式(观察者模式)
Jul 07 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程序员的技术瓶颈分析
2011/07/17 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
PHP数组相关函数汇总
2015/03/24 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
Python中的两个内置模块介绍
2015/04/05 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2019/12/23 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
药学职务聘任书
2014/03/29 职场文书
大学班级计划书
2014/04/29 职场文书
2014年冬季防火方案
2014/05/21 职场文书
市场营销策划方案
2014/06/11 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
java设计模式--七大原则详解
2021/07/21 Java/Android
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫