检查php文件中是否含有bom的函数


Posted in PHP onMay 31, 2012
<?php 
/*检测并清除BOM*/ 
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); 
} 
} 
}//end while 
closedir($dh); 
}//end if($dh 
}//end function 
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>"); 
} 
} 3water.com 
else return ("BOM Not Found."); 
}//end function 
function rewrite($filename, $data){ 
$filenum = fopen($filename, "w"); 
flock($filenum, LOCK_EX); 
fwrite($filenum, $data); 
fclose($filenum); 
}//end function 
?>
PHP 相关文章推荐
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
php 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
写php分页时出现的Fatal error的解决方法
Apr 18 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
PHP操作MySQL事务实例
Nov 05 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
php单例模式示例分享
Feb 12 PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 PHP
PHP类的封装与继承详解
Sep 29 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
php注销代码(session注销)
May 31 #PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 #PHP
php分页思路以及在ZF中的使用
May 30 #PHP
php DOS攻击实现代码(附如何防范)
May 29 #PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 #PHP
PHP中将网页导出为Word文档的代码
May 25 #PHP
php在文件指定行中写入代码的方法
May 23 #PHP
You might like
PHP XML数据解析代码
2010/05/26 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
在Python的web框架中配置app的教程
2015/04/30 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
logging level级别介绍
2020/02/21 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
乔迁宴答谢词
2014/01/21 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
如何用python绘制雷达图
2021/04/24 Python
Python 统计序列中元素的出现频度
2022/04/26 Python