zoukankan      html  css  js  c++  java
  • PHP 版去bom头

    原理:

    找出文件前3个字符

    如果它们对应的ASCII 值分别是  239,187,191

    则判断为bom头,去掉前3个字符. 

    代码实现如下:

    $basedir =  isset($_GET['dir'])  ? $_GET['dir'] : ".";
    $auto    = 1;
    $auto    =  isset($_GET['auto']) ? $_GET['auto'] : $auto;
    
    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, 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);
    }
    

      

  • 相关阅读:
    10、代码块、构造代码块、静态代码块及main方法之间的关系
    2.0、Hibernate框架的简单搭建
    1.0、Struts2的简单搭建方法
    5、Servlet的使用
    angular组件之间的通信
    angular项目中遇到的问题
    ng-zorro-mobile中遇到的问题
    angular管道操作符的使用
    angular路由配置以及使用
    搭建Angular环境
  • 原文地址:https://www.cnblogs.com/xielisen/p/5382049.html
Copyright © 2011-2022 走看看