随笔 - 1330  文章 - 1  评论 - 378  阅读 - 482万 

问题引发:

utf8编码网页包含文件时前面有空行的解决

http://www.cnblogs.com/qiantuwuliang/archive/2010/10/29/1864209.html

 

 

复制代码
代码
<?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.k686.com>http://www.k686.com</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文件,放到网站根目录下,可以遍历文件夹并自动清除bom,对文件绝对安全,亲测过的,测试用途见

 

放到网站根目录然后执行一下就OK了,会遍历所有文件
比如http://www.baidu.com/checkbom.php

也可以指定目录执行

比如http://www.baidu.com/checkbom.php?dir=html

 

 

 

posted on   钱途无梁  阅读(2331)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2009-10-29 sql server 判断***是否存在???
点击右上角即可分享
微信分享提示