Home  >  Article  >  Backend Development  >  PHP批量清除utf-8文件的bom头

PHP批量清除utf-8文件的bom头

WBOY
WBOYOriginal
2016-06-20 13:01:19948browse

PHP批量清除utf-8文件的bom头

<?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, , 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


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn