批量去除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 相关文章推荐
编译问题
Oct 09 PHP
PHP 上传文件大小限制
Jul 05 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
thinkphp浏览历史功能实现方法
Oct 29 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
社区(php&amp;&amp;mysql)四
2006/10/09 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
php实现简单加入购物车功能
2017/03/07 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
Ext面向对象开发实践(续)
2008/11/18 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
python颜色随机生成器的实例代码
2020/01/10 Python
python实现同一局域网下传输图片
2020/03/20 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
大学生如何写自荐信
2014/01/08 职场文书
应聘会计求职信
2014/06/11 职场文书
教师节横幅标语
2014/10/08 职场文书
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技