作者xingulin (申谷林)
看板PHP
標題[心得] php 濾掉 UTF-8 檔案的 BOM 字元
時間Wed Jul 19 20:11:02 2006
一點小小心得,還請各位先進不吝指教。
這個方法僅適用於主機在你掌握之中的情況下,主要的原理是利用 php 下的
auto_prepend 與 auto_append 的設定,在 unicode 文件輸出到 browser
之前,把所有的 BOM 字元先濾掉。
步驟︰
1. 新增 prepend.php 檔,內容如下︰
<?php
ob_start();
?>
2. 新增 appane.php 檔,內容如下︰
<?php
$contents = ob_get_contents();
$output = '';
$bom = chr(0xEF) . chr(0xBB) . chr(0xBF);
$contents = str_replace($bom, '', $contents);
ob_end_clean();
echo $contents;
?>
3. 將上述兩個檔放在特定資料夾下,如 c:\bom
4. 在 php 的 php.ini 設定檔下,找到 auto_prepend_file 與
auto_append_file 設定,更改如下︰
auto_prepend_file = "c:\bom\prepend.php"
auto_append_file = "c:\bom\append.php"
當然這樣的做法會拖慢網頁速度啦,因為每次主機都要花額外的時間來處理
過濾的動作。算是偷吃步的方法囉 :D
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.56.130.54
1F:推 alpe:直接不放bom... ... 07/19 20:25
2F:→ xingulin:我會這樣子做是有苦衷滴...... 07/19 20:27
3F:推 alpe:那辛苦你了... .. 拍 07/19 21:37
4F:→ ileadu:BOM一定是那三個字元?那還真是不錯的除BOM法(筆記..) 07/19 23:19
6F:推 foxzgerald:我記得有 script 可以掃描後一次清除說 07/20 00:12
7F:→ xingulin:是有沒錯 不過我是因為多人開發 再加上使用 smarty 07/20 00:18
8F:→ xingulin:大小子樣版互相 include...常常會破版 07/20 00:18
9F:→ xingulin:這算是暫時的權宜之計吧 等要結案時再一次濾所有檔案 07/20 00:19