当使用php include函数时,include被成功执行,但在include的输出被输出之前,它也输出了一个char,char是十六进制值3F,我不知道它来自哪里,尽管这似乎在每个include中都会发生。
起初我认为它是文件编码,但这似乎不是一个问题。我已经创建了一个测试用例来演示它:(链接不再工作) http://driveefficiently.com/testinclude.php这个文件只包含:
<? include("include.inc"); ?>
include.inc仅由以下部分组成:
<? echo ("hello, world"); ?>
然而,输出是:"?hello,world“在哪里?是一个具有随机值的字符。就是这个值,我不知道它的来源,它有时会把我的网站搞得一团糟。
你知道这可能是从哪里来的吗?起初我认为这可能与文件编码有关,但我不认为这是一个问题。
发布于 2008-09-03 13:41:38
您的web服务器(或文本编辑器)显然会在文档中包含一个BOM。我在浏览器中看不到这个流氓字符,除非我显式地将站点的编码设置为拉丁文-1。然后,我看到两个(!)UTF-8 BOM。
/EDIT:根据有两个BOM的事实,我得出结论,BOM实际上包含在文件开头的编辑器中。你用的是什么编辑器?如果你使用Visual Studio,你必须说“另存为…”在“文件”菜单中,然后选择“以编码…保存”按钮。在这里,选择“没有BOM的UTF-8”或类似的东西。
发布于 2008-09-03 13:36:35
它不会显示在Firefox或IE的渲染页面上,但当您在IE中查看源代码时,您可以看到有趣的字符
这是在Linux机器上吗?你能找到并替换成vim或者sed,看看你能不能去掉3F?
如果是在Windows上,试着用记事本打开include.inc,看看这个有趣的字符是否可见并可以删除。
我也很好奇,如果您将代码复制出include并单独运行它,会发生什么。
发布于 2008-09-03 13:25:14
我在你链接的页面上看到了hello, world
。我看不出有什么问题。
我使用的是Firefox 3.0.1和Windows XP。您运行的是哪种浏览器/操作系统?也许这就是问题所在。
https://stackoverflow.com/questions/41647
复制相似问题