检查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时间戳 strtotime()使用方法和技巧
Oct 29 PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
Jan 09 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
示例详解Laravel的注册重构
Aug 14 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
php注册审核重点解析(数据访问)
May 23 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
PDO::commit讲解
Jan 27 PHP
PHP+redis实现微博的拉模型案例详解
Jul 10 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
python解析中国天气网的天气数据
2014/03/21 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
Django中的AutoField字段使用
2020/05/18 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
高二英语教学反思
2014/01/19 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
学习决心书范文
2014/03/11 职场文书
车辆工程专业求职信
2014/04/28 职场文书
欢迎横幅标语
2014/06/17 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
MySQL分区以及建索引的方法总结
2022/04/13 MySQL