去掉文件的bom头

来源:互联网 发布:it管理培训 编辑:程序博客网 时间:2024/04/30 00:32

* 不能登入或者不能登出;

 * 验证码不能正常显示;

* 页顶出现一条空白;

 * 页顶出现错误警告; 

* 其它不正常的情况。

<?php set_time_limit(120);if (isset($_GET['dir'])) {//设置文件目录    $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 ("bom is cleaned");        } else {            return ("");        }    } else        return ("BOM Not Found.");} function rewrite($filename, $data) {    $filenum = fopen($filename, "w");    flock($filenum, LOCK_EX);    fwrite($filenum, $data);    fclose($filenum);}




0 0
原创粉丝点击