美文网首页
php批量清除文件bom头

php批量清除文件bom头

作者: 没个性的七秒鱼 | 来源:发表于2017-08-04 11:11 被阅读0次

    新建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" ) . "
    ";
    } 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 );
    }
    ?>

    相关文章

      网友评论

          本文标题:php批量清除文件bom头

          本文链接:https://www.haomeiwen.com/subject/yfjvlxtx.html