zoukankan      html  css  js  c++  java
  • 去掉utf8 bom (找了好久才找到) 防止UTF8页面上传服务器, 出现错位之类的错误

    这东西把我害死了,交上去的项目文件均出现乱码,被技术组长狠狠地BS了一把。
    项目开始之初强调了utf8的编码,但居然还有no bom & bom 区分。痛苦啊!!
    搞了个 kill utf8-bom 的php脚本,实现 convert utf-bom to utf8-nobom。

    把以下代码保存为:killbom.php,放在要转换的文件根目录下执行即可。

    <?php 
    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".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); 
    } 
    ?>
    
  • 相关阅读:
    eclipse 配置SVN代理服务器
    jenkins 配置SVN 代理服务器
    记录服务器启动redis过程
    java牛客刷题2020年9月4日
    java牛客网错题2020年9月3日
    bootstrap-select 实现搜索,如果内容搜索不到显示到框内
    pandas教程5-合并 concat
    pandas教程-4导入导出
    pandas简单教程1
    AttributeError: module 'pandas' has no attribute 'Series'
  • 原文地址:https://www.cnblogs.com/freespider/p/2002241.html
Copyright © 2011-2022 走看看