批量去除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连接Oracle for NT 远程数据库
Oct 09 PHP
html中select语句读取mysql表中内容
Oct 09 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 PHP
php遍历数组的4种方法总结
Jul 05 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
PHP中FTP相关函数小结
Jul 15 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
PHP中如何使用Redis接管文件存储Session详解
Nov 28 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
javascript 解析url的search方法
2010/02/09 Javascript
JS模板实现方法
2013/04/03 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
素质教育标语
2014/06/27 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
python如何读取和存储dict()与.json格式文件
2022/06/25 Python
mysql全面解析json/数组
2022/07/07 MySQL