现在这是我在PHP中遇到过的最奇怪的问题。
除一个外,所有页面看起来都正常;当我第一次看到这个问题时,我认为这是IE和样式表的常见问题之一(我在这个页面上有一个特定的CSS文件)。我试图排除CSS文件只是为了确保问题确实在这个文件中,但事实并非如此。然后我以为我忘记关闭任何HTML标记,所以我多次查看代码,但似乎都是正确的。所以我开始把代码放在评论中并与IE进行比较,直到我意识到当我在评论中推出以下代码时,页面本身表现正常:
require_once(PATH_INCLUDES . 'adjacency.php');
这是一个有效的路径,文件只包含一个带有函数的类 - 如果MySQL查询失败,除了die()之外没有任何输出。
在IE中看起来很奇怪的一些事情如下:
任何?
编辑:我试图将adjacency.php包含在另一个文件中,并且出现了同样的问题。
答案 0 :(得分:5)
作为一种猜测,在结束“?>”之后,最有可能在包含文件末尾有一些空格。 (Zend Framework建议不使用结束PHP标记的原因之一。)
答案 1 :(得分:1)
包含的PHP文件是否以UTF-8 BOM(字节顺序标记)开头?这是一个不可见的字节序列,有时会出现在Unicode文本文件的开头,以帮助自动检测UTF。不幸的是,PHP有些天真,并且会在从包含的PHP文件中读取BOM时输出BOM。根据我的实验,IE可以处理一个BOM,但是如果BOM加倍(如果浏览器请求的PHP文件和包含BOM的每个包含BOM的情况就是如此)那么它就不能看到doctype在开头并且因此触发了怪癖模式。
确保您的编辑器配置为不使用BOM进行保存。