批量去除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
Mysql中分页查询的两个解决方法比较
May 02 PHP
PHP独立Session数据库存储操作类分享
Jun 11 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
CI框架实现优化文件上传及多文件上传的方法
Jan 04 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
Laravel5.1 框架路由基础详解
Jan 04 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
世界收音机发展史
2021/03/01 无线电
top.location.href 没有权限 解决方法
2008/08/05 Javascript
JavaScript 快捷键设置实现代码
2009/03/13 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
Python全局变量操作详解
2015/04/14 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
Python笔记之代理模式
2019/11/20 Python
Python求解正态分布置信区间教程
2019/11/20 Python
Python接口开发实现步骤详解
2020/04/26 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
土建施工员岗位职责
2014/07/16 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
员工2014年度工作总结
2014/12/09 职场文书
英文自荐信范文
2015/03/25 职场文书
暂住证证明
2015/06/19 职场文书
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL