批量去除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 相关文章推荐
phpmyadmin操作流程
Oct 09 PHP
PHP个人网站架设连环讲(四)
Oct 09 PHP
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
2014最热门的24个php类库汇总
Dec 18 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
Oct 01 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
python实现批量监控网站
2016/09/09 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
Python 实现自动导入缺失的库
2019/10/29 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
Oracle性能调优原则
2012/05/03 面试题
string = null 和string = ''的区别
2013/04/28 面试题
会计电算化应届生自荐信
2014/02/25 职场文书
党建目标管理责任书
2014/07/25 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL