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);
    }
    ?>
  • 相关阅读:
    添加egit插件
    Git使用教程
    mysql set names 命令和 mysql字符编码问题
    git常用命令
    前端WEB编辑器-------webstrom
    maven 常见错误解决方法
    java -jar 执行 eclipse export 的 jar 包报错处理
    数据库(DBUtils)
    数据库(JDBC、DBUtils)
    rabbitmq Exchange四种模式
  • 原文地址:https://www.cnblogs.com/lsy-ai/p/6244888.html
Copyright © 2011-2022 走看看