php文件引用问题,Php引用文件引起的空白行问题(UTF-8)
可能會有不少人碰到在php中如果是utf8編碼我們導(dǎo)入文件時會出現(xiàn)空白行的問題,下面我來給各位同學(xué)介紹引用文件空白行的解決辦法。
引用文件指的是include、require_once引用其它文件引起的空白行
這其實是你用記事本編輯UTF-8文件以后,雖然你還是保存為UTF-8格式,但系統(tǒng)會自動給文件加兩個bom標(biāo)記,但是ie只能忽略一個,另一個就是空白行了。
解決辦法就是:
不要用記事本去編輯UTF-8文件,要用其它工具,比Dreamw、EmEditor 、Visual Studio 2008等編輯工具編輯UTF-8文件后保存。
我的兩個站用記事本編輯后頂部就有空白行,起初以為是css設(shè)置問題,結(jié)果是bom標(biāo)記引起的。
還有一種辦法,如果你是大量文件都這樣我們可使用一個php函數(shù)來搞定
把以下代碼復(fù)制到一個PHP文件里面,然后放在需要清除BOM頭的目錄一下運行,就可以批量把PHP空白的首行清除掉,太給力了。
| ?代碼如下 | 復(fù)制代碼 |
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")." }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 found, automatically removed."); } else { return ("BOM found."); } } else return ("BOM Not Found."); } function rewrite ($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); } ?> | |
總結(jié)
以上是生活随笔為你收集整理的php文件引用问题,Php引用文件引起的空白行问题(UTF-8)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF快速指导2:模板
- 下一篇: 手机影音第十一天,显示视频缓冲,显示卡顿