UTF-8 的文檔分為 "檔首有BOM" 及 "檔首無BOM" 兩種,如果遇到程式讀取使用者上傳的文檔,明明用記事本打開第一碼是A(舉例),但用程式讀內容抓到的第一碼卻不是A,可能這個檔案就是檔首含BOM的文件,檢查方式很簡單,如下....
$c = file_get_contents($f);
$str1 = substr($c, 0, 1);
$str2 = substr($c, 1, 1);
$str3 = substr($c, 2, 1);
if (ord($str1 == 239 && $str2 == 187 && $str3 == 191) {
echo '此文件檔首含BOM';
$chk = 'y';
}
//如果要取出不含BOM的內容
if ($chk == 'y') {
$contents = substr($c, 3); //排除前三個位元之後就是乾淨的文字內容了
}
No comments:
Post a Comment