zoukankan      html  css  js  c++  java
  • php批量检测和去掉bom头(转)

    <?php  
    //有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题。以下是批量清除bom头的代码
     
    if (isset ( $_GET ['dir'] )) { //config the basedir    
        $basedir = $_GET ['dir'];    
    } else {    
        $basedir = '.';    
    }    
    $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) { // BOM 的前三个字符的ASCII 码分别为 239 187 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 );    
    }
    

      

  • 相关阅读:
    ArrayList用法
    MessageBox
    将文本文件导入Sql数据库
    在桌面和菜单中添加快捷方式
    泡沫排序
    Making use of localized variables in javascript.
    Remove double empty lines in Visual Studio 2012
    Using Operations Manager Connectors
    Clear SharePoint Designer cache
    Programmatically set navigation settings in SharePoint 2013
  • 原文地址:https://www.cnblogs.com/shixiuxian/p/10072010.html
Copyright © 2011-2022 走看看