批量去除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 XML操作类DOMDocument
Dec 16 PHP
php自动获取目录下的模板的代码
Aug 08 PHP
那些年一起学习的PHP(三)
Mar 22 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
Aug 07 PHP
php strftime函数获取日期时间(switch用法)
May 16 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
jquery cookie插件代码类
2009/05/26 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
js+css实现打字效果
2020/06/24 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
Vue性能优化的方法
2020/07/30 Javascript
Python3实现并发检验代理池地址的方法
2016/09/18 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
基于python log取对数详解
2018/06/08 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
软件工程专业推荐信
2013/10/28 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年工人工作总结
2014/11/25 职场文书
教师年度个人总结
2015/02/11 职场文书
一个都不能少观后感
2015/06/04 职场文书
社区安全温馨提示语
2015/07/14 职场文书
中学语文教学反思
2016/02/16 职场文书