寫程式沒注意到的BOM檔首
當檔案被以包含 BOM 儲存時,有一個萬國字元插入到檔案的起點,而大多數的文字編輯器將不會顯示,所以您看不見它。php 不能解析檔案中的 BOM 字元,而把它看成是一般字元。
用微軟的記事本軟體存檔的時候,就會有一個 BOM 加進去,平常也沒注意。
當我用 $fr = @fopen('file.txt', 'r');
讀進一個文字檔
xxx 字串一
希望如果讀到"xxx"就會印出 yaya
用微軟的記事本軟體存檔的時候,就會有一個 BOM 加進去,平常也沒注意。
當我用 $fr = @fopen('file.txt', 'r');
讀進一個文字檔
xxx 字串一
xxx 字串二
然後寫了以下的程式
while(fscanf($fr,"%s%s",$str1,$str2)){ if($str1=="xxx")
{echo "yaya<BR>";} echo $str1."+".str2."<BR>" ;
希望如果讀到"xxx"就會印出 yaya
程式執行的結果如下:
xxx+字串一
yaya
xxx+字串二
結果,卻是第一行的時候,對那個 if 沒有反應, 讀第二行資料的時候才有判斷是否讀到。
其實不是沒反應,而且xxx前面多了看不見的檔首BOM,程式當然就不認為符合“xxx”囉!
其實不是沒反應,而且xxx前面多了看不見的檔首BOM,程式當然就不認為符合“xxx”囉!
留言
張貼留言