当前位置:首页 » 好文分享 » 详情

PHP在线清除文件BOM工具

在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。

使用方法:将bom.php上传到网站根目录下,在浏览器中访问即可自动清除文件BOM。

PHP源码:
<?php  
/*检测并清除BOM*/   
/*www.325.hk*/
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);  
 }   
}  
}
}
}
 
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);
}
 
?>

打赏
X
打赏方式:
  • 支付宝
  • 微信
  • QQ红包

打开支付宝扫一扫
日期:2019年03月07日 07:46:47 星期三   分类:好文分享   浏览(36255)
本文地址:https://www.blogs.hk/post-4218.html   [百度已收录]
声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!

留言咨询

自动获取QQ

昵称

邮箱

网址

      Copyright © 2024 博客之家 版权所有  
      關於本站免責聲明sitemap新站登錄