程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Php引用文件引起的空白行問題(UTF-8)

Php引用文件引起的空白行問題(UTF-8)

編輯:關於PHP編程

可能會有不少人碰到在php中如果是utf8編碼我們導入文件時會出現空白行的問題,下面我來給各位同學介紹引用文件空白行的解決辦法。

引用文件指的是include、require_once引用其它文件引起的空白行

這其實是你用記事本編輯UTF-8文件以後,雖然你還是保存為UTF-8格式,但系統會自動給文件加兩個bom標記,但是ie只能忽略一個,另一個就是空白行了。
解決辦法就是:

不要用記事本去編輯UTF-8文件,要用其它工具,比Dreamw、EmEditor 、Visual Studio 2008等編輯工具編輯UTF-8文件後保存。

我的兩個站用記事本編輯後頂部就有空白行,起初以為是css設置問題,結果是bom標記引起的。

還有一種辦法,如果你是大量文件都這樣我們可使用一個php函數來搞定

把以下代碼復制到一個PHP文件裡面,然後放在需要清除BOM頭的目錄一下運行,就可以批量把PHP空白的首行清除掉,太給力了。

 代碼如下 復制代碼

 
<?php  
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);  
    }  
   }  
  }  
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);  
}  
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved