作者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