新聞中心
快速去除整站程序文件編碼中的BOM方法
作者 / 無(wú)憂主機(jī) 時(shí)間 2014-10-11 00:00:52
今天發(fā)現(xiàn)這個(gè)方法也是偶然,在無(wú)憂主機(jī)購(gòu)買了獨(dú)立ip空間后,安裝指定的網(wǎng)站程序,安裝完成后登陸后臺(tái)時(shí),驗(yàn)證碼不顯示,空間初始化了幾次重新安裝后,才初步斷定是網(wǎng)站程序文件中有bom格式文件存在,常規(guī)的是utf-8,他這個(gè)是utf-8+bom,所以出現(xiàn)問(wèn)題了。但是,這會(huì)兒你又不知道確卻的文件是哪一個(gè)?怎么辦勒? 接下來(lái)用小編這個(gè)方法,一定管用! 首先,你本地新建一個(gè)文件,小編這里命名為:RemoveBom.php 接著,把下面這段代碼復(fù)制粘貼進(jìn)去,上面命名的文件里面,然后保存一下,上傳到網(wǎng)站根目錄下面,接著直接運(yùn)行該文件即可! RemoveBom.php代碼如下:
<?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._<a href=http://www.gle-technology.com>http://www.gle-technology.com</a></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); } ?>
上面的代碼的作用就是清除BOM的!實(shí)際效果非常好,分分鐘解決這個(gè)問(wèn)題,站長(zhǎng)的得力助手呀,小編現(xiàn)在還在用!小編我還直接制作好了一個(gè)壓縮包,里面附帶了使用說(shuō)明哦,點(diǎn)擊我就可以直接下載!
無(wú)憂主機(jī)相關(guān)文章推薦閱讀:
DISCUZ!一次UC通信失敗的解決本文地址:http://www.gle-technology.com/discuz/16998.html