溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php bom頭問(wèn)題解決

發(fā)布時(shí)間:2020-06-12 05:44:05 來(lái)源:網(wǎng)絡(luò) 閱讀:4514 作者:ljianbing 欄目:web開(kāi)發(fā)

jquery post echo:


1、輸出1或0時(shí),始終頭部有個(gè)符號(hào),用字符判斷時(shí)無(wú)法正常判斷,用數(shù)值判斷時(shí)不受影響。

                if(!empty($phone_mob)){

echo 0;

}else{

//header("Content-Type: text/html;charset=utf-8");

echo 1;

//exit;

}

2、判斷估計(jì)bom頭問(wèn)題,檢查確實(shí)時(shí)頭部異常字符輸出。

                ob_start();

ob_clean();

echo '---';

if(!empty($phone_mob)){

echo 0;

}else{

//header("Content-Type: text/html;charset=utf-8");

echo 1;

//exit;

}

ob_end_flush();

echo '=====';

3、用checkbom.php檢查并去掉文件bom頭后問(wèn)題解決。

<?php

/*檢測(cè)并清除BOM*/  

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);  

                }  

            }  

        }//end while  

    closedir($dh);  

    }//end if($dh  

}//end function  

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.");  

}//end function  

function rewrite($filename, $data){  

    $filenum = fopen($filename, "w");  

    flock($filenum, LOCK_EX);  

    fwrite($filenum, $data);  

    fclose($filenum);  

}//end function  

?>

    類(lèi)似WINDOWS自帶的記事本等軟件,在保存一個(gè)以UTF-8編碼的文件時(shí),會(huì)在文件開(kāi)始的地方插入三個(gè)不可見(jiàn)的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隱藏的字符,用于讓記事本等編輯器識(shí)別這個(gè)文件是否以UTF-8編碼。對(duì)于一般的文件,這樣并不會(huì)產(chǎn)生什么麻煩。但對(duì)于 PHP來(lái)說(shuō),BOM是個(gè)***煩。

  PHP并不會(huì)忽略BOM,所以在讀取、包含或者引用這些文件時(shí),會(huì)把BOM作為該文件開(kāi)頭正文的一部分。根據(jù)嵌入式語(yǔ)言的特點(diǎn),這串字符將被直接執(zhí)行(顯示)出來(lái)。由此造成即使頁(yè)面的 top padding 設(shè)置為0,也無(wú)法讓整個(gè)網(wǎng)頁(yè)緊貼瀏覽器頂部,因?yàn)樵趆tml一開(kāi)頭有這3個(gè)字符呢!


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI