<?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>");
}
}
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
?>

最新文章

  1. China Mobile 免流原理
  2. VPN各种常见状态码及修复方法
  3. emmet使用 及 notepadd++ emmet的安装
  4. python安装numpy科学计算模块
  5. (06)odoo报表
  6. mac 下tomcat启动报错 unknown host
  7. Can’t create handler inside thread that has not called Looper.prepare()
  8. 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口
  9. 一个失败的操作系统MULTICS
  10. Misha and Palindrome Degree
  11. eclipse设置背景保护色及常用设置
  12. web应用中的异常处理
  13. 驱动调试-根据oops定位错误代码行
  14. Balanced Number HDU - 3709
  15. XPath Helper使用教程
  16. Problem B: 故障电灯(light)
  17. 如何修改Tomcat的默认项目发布路径
  18. 虚拟机安装及Oracle安装
  19. DocumentType类型
  20. BZOJ1004 HNOI2008Cards(Burnside引理+动态规划)

热门文章

  1. 【2016-10-26】【坚持学习】【Day13】【WCF】【EF + Data Services】
  2. Linux 之 目录和文件
  3. 如何用ZBrush快速绘制身体
  4. POJ3070 Fibonacci[矩阵乘法]
  5. 匈牙利算法与KM算法
  6. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 几十套业务系统集中统一授权管理实现经验分享
  7. 监控jvm的一个坑
  8. 在WebAPI使用Session
  9. JS组件系列——使用HTML标签的data属性初始化JS组件
  10. 不可错过的javascript迷你库