TP -PHP 去掉Bom頭的方法和為什么要清除Bom頭

utf-8編碼總bom在文件頭部.占用三個字符.很多都能識別但是php不能識別bom頭

這也是用記事本編輯utf-8編碼后執(zhí)行就會出錯的原因了(我用xftp直接修改導(dǎo)致錯誤

在服務(wù)器根目錄下建一個clean.bom文件.瀏覽器運行一下就可以了.

一般會出現(xiàn)json.parse報錯.錯誤信息.

<?php 
if (isset($_GET['dir'])) { //設(shè)置文件目錄  
    $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); 
} 
?>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容