批量去除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数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
javascript+php实现根据用户时区显示当地时间的方法
Mar 11 PHP
php获取twitter最新消息的方法
Apr 14 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
Jan 08 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
浅析PHP数据导出知识点
Feb 17 PHP
laravel-admin select框默认选中的方法
Oct 03 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/10/09 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
javascript event 事件解析
2011/01/31 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
Python中正则表达式的用法实例汇总
2014/08/18 Python
django foreignkey(外键)的实现
2019/07/29 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
基于python3的socket聊天编程
2020/02/17 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
2015元旦联欢晚会结束语
2014/12/14 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书