2009年8月24日 星期一

PHP include file時轉碼

今天幫人寫網頁的時候,所遇到的一個小問題
平常都會習慣把網頁的像是header啦floor啦弄成template
再用include的方式include近來

但是當我想把big5碼的檔案include到utf-8的網頁
或者我想把utf-8的網頁include到big5的網頁就會出問題
用file_get_contents嘛,因為我習慣template加進html宣告標籤 又不合用
有沒有辦法把include進來的檔案從新編碼

後來找到了用output buffer的方式,先把include近來的檔案放進buffer而不輸出
再把output buffer的內容進行編碼,這樣就可以解決我遇到的問題了
範例如下

ob_start();
include 'template/header.tpl';/*把include的file先不輸出到螢幕 放到緩衝*/
$table=ob_get_contents();/*從緩衝取得include內容*/
ob_end_clean(); /*關閉並結束緩衝*/
/*輸出*/
echo iconv("utf-8","big5",$table);
ob_flush();
flush();

1 則留言:

匿名 提到...

不用這麼複雜, 只要用記事本開啟save as utf-8就可以了