批量去除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脚本的10个技巧(6)
Oct 09 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
PHP实现的简单日历类
Nov 29 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
php计算title标题相似比的方法
Jul 29 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
关于PHP求解三数之和问题详析
Nov 09 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
基于python爬取梨视频实现过程解析
2020/11/09 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
《雨霖铃》教学反思
2014/02/22 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
机电专业求职信
2014/06/14 职场文书
如何写通讯稿
2015/07/22 职场文书
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS