zoukankan      html  css  js  c++  java
  • 检测文件是否有BOM 头,并删除BOM头(php)

    将下面文件放在网站根目录访问即可,它会遍历当前目录下所有子目录,检测文件是否含有BOM头,并删除BOM头

    <?php
    //remove the utf-8 boms
    //by magicbug at gmail dot com
    set_time_limit(0);
    
    if (isset($_GET['dir'])){ //config the basedir
    $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 ";
         echo 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.</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);
    }
    ?>
  • 相关阅读:
    POJ 1044: Date bugs
    POJ 1017: Packets
    POJ 1014: Dividing
    POJ 1012: Joseph
    POJ 1011: Sticks
    POJ 1008: Maya Calendar
    POJ 1005: I Think I Need a Houseboat
    为什么要自动化测试
    微软CodeDom模型学习笔记(全)
    概念完整性
  • 原文地址:https://www.cnblogs.com/lsy-ai/p/6244888.html
Copyright © 2011-2022 走看看