PHP網(wǎng)站建設(shè)之去除文件bom頭信息

2023-03-06    分類(lèi): 網(wǎng)站建設(shè)

BOM是用來(lái)判斷文本文件是哪一種Unicode編碼的標(biāo)記,其本身是一個(gè)Unicode字符("\uFEFF"),位于文本文件頭部,BOM本來(lái)不影響代碼的解析,但是php除外,PHP會(huì)解析BOM,會(huì)輸出在頁(yè)面里,造成前端有占位發(fā)生布局位移,如果不了解的php BOM 就會(huì)對(duì)這個(gè)平白多出來(lái)的東西感到莫名其妙。
我們?nèi)サ艟W(wǎng)站php文件里的BOM信息呢
編輯器可以無(wú)保存bom文件,utf-8和utf-8 with bom ,要保存了bom文件 php會(huì)報(bào)錯(cuò)namespace 必須是第一行的代碼,現(xiàn)在是bom信息是第一行,雖然你看不到但是他就是在第一行

網(wǎng)站制作1

我們?cè)趺礃油ㄟ^(guò)代碼的形式批量的去掉文件的bom信息
在網(wǎng)站根目錄下新建一個(gè)nobomb.php的文件,文件的代碼為以下內(nèi)容。主要解決模板多出空的內(nèi)容、驗(yàn)證碼不顯示等問(wèn)題。然后在瀏覽器直接訪(fǎng)問(wèn)運(yùn)行nobom.php文件即可。
if(isset($_GET['dir'])){
$basedir=$_GET['dir'];
}else{
$basedir='.';
}
$auto=1;
checkdir($basedir);
functioncheckdir($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);
}
}
functioncheckBOM($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("BOMfound,automaticallyremoved.");
}else{
return("BOMfound.");
}
}elsereturn("BOMNotFound.");
}
functionrewrite($filename,$data){
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}

網(wǎng)站制作2

運(yùn)行上面的代碼就可以清除文件的bom信息

網(wǎng)站制作3

上面的截圖看是沒(méi)有發(fā)現(xiàn)帶有bom的文件的,有bom的文件 會(huì)出現(xiàn)字體加紅色。
去掉后訪(fǎng)問(wèn)網(wǎng)站訪(fǎng)問(wèn)正常

網(wǎng)站制作4

網(wǎng)站欄目:PHP網(wǎng)站建設(shè)之去除文件bom頭信息
轉(zhuǎn)載注明:http://www.bm7419.com/news/241887.html

網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專(zhuān)注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷(xiāo)seo公司;服務(wù)項(xiàng)目有網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)