甜思思 发表于 2017-4-10 06:03:56

用PHP检测并去掉UTF-8中的BOM

  <?php
/*清除rom*/
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 = substr($contents, 0, 1);  
   $charset = substr($contents, 1, 1);  
   $charset = substr($contents, 2, 1);  
   if(ord($charset) == 239 && ord($charset) == 187 && ord($charset) == 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);
}

?>
页: [1]
查看完整版本: 用PHP检测并去掉UTF-8中的BOM