由于PHP文件管理功能,在doctype之前的BOM

时间:2011-09-24 10:33:35

标签: php html file internet-explorer byte-order-mark

我已经问过here为什么my page无法在IE中工作。答案是我在doctype之前有一个字节。

然而,我检查并重新检查它,在doctype之前没有空格,我将文档保存为ANSI,没有BOM的UTF-8(所有带记事本)并且它不会消失。

但是,我能够收集一些有趣的数据。我的网站用于显示内容模板。 如果我选择标题(问题出在哪里)并直接在IE中显示,那就可以了!

所以我认为当从php读取并显示文件时会添加该位。 用于显示内容的PHP代码:

    function gettemplate ($templatename) {
        $filename = './templates/'. $templatename . ".tpl";
        return ReadFromFile($filename);
    }

文件的扩展名为 .tpl ,但它的工作方式与 .html (我已检查过)完全相同

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

当我对你的页面执行hexdump:

$ GET http://juancarlosoleacañizares.es/ | hd | head -n 1
00000000  ef bb bf ef bb bf 3c 21  44 4f 43 54 59 50 45 20  |......<!DOCTYPE |

我看到两个BOM标记(两次EF BB BF),这是不寻常的。您是否检查过.php文件本身是否有BOM标记?