php教程 PHP源码 批量清除BOM头

批量清除BOM头

May 23, 2016 pm 05:09 PM

跳至

<?php  
//有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题。以下是批量清除bom头的代码

if (isset ( $_GET ['dir'] )) { //config the basedir    
    $basedir = $_GET ['dir'];    
} else {    
    $basedir = '.';    
}    
$basedir="./weibo/";
$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" ) . " 
";    
                } 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 ("");    
        } else {    
            return ("");    
        }    
    } else    
        return ("BOM Not Found.");    
}    

function rewrite($filename, $data) {    
    $filenum = fopen ( $filename, "w" );    
    flock ( $filenum, LOCK_EX );    
    fwrite ( $filenum, $data );    
    fclose ( $filenum );    
}
로그인 후 복사

                   

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)