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);
    }
    ?>
  • 相关阅读:
    从头学pytorch(二十一):全连接网络dense net
    Linux环境实现python远程可视编程
    centos7安装Anaconda3
    sql语句中包含引号处理方法
    syslog 日志
    python 判断是否为中文
    numpy简介
    django之模板显示静态文件
    Linux(Ubuntu)安装libpcap
    Bug预防体系
  • 原文地址:https://www.cnblogs.com/lsy-ai/p/6244888.html
Copyright © 2011-2022 走看看