批量去除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 相关文章推荐
相对路径转化成绝对路径
Apr 10 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
php实现递归抓取网页类实例
Apr 03 PHP
php按单词截取字符串的方法
Apr 07 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
php的无刷新操作实现方法分析
Feb 28 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类
2006/11/25 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
jQuery textarea的长度进行验证
2009/05/06 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
python根据unicode判断语言类型实例代码
2018/01/17 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
Python Grid使用和布局详解
2018/06/30 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
Python文件读写常见用法总结
2019/02/22 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
中专生自荐信
2013/10/12 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书