当使用php include函数时,include成功执行,但是在输出include的输出之前它也输出一个char,char是十六进制值3F而我不知道它来自哪里,虽然它似乎每个包含都会发生.
起初我认为它是文件编码,但这似乎不是一个问题.我已经创建了一个测试用例来演示它:( 链接不再有效)http://driveefficiently.com/testinclude.php此文件仅包含:
include("include.inc"); ?>
和include.inc仅包含:
echo ("hello, world"); ?>
然而,输出是:"你好,世界"在哪里?是一个具有随机值的char.正是这个价值我不知道它的起源,它有时会搞砸我的网站.
关于这可能来自哪里的任何想法?起初我以为它可能与文件编码有关,但我不认为这是一个问题.
您所看到的是UTF-8字节顺序标记:
BOM的UTF-8表示是字节序列EF BB BF,在大多数未准备好处理UTF-8的文本编辑器和Web浏览器中显示为ISO-8859-1字符.
维基百科上的字节顺序标记
PHP不明白这些字符应该被"隐藏"并将它们发送到浏览器,就好像它们是普通字符一样.要摆脱它们,您需要使用"适当的"文本编辑器打开文件,该编辑器允许您将文件保存为UTF-8而不使用前导BOM.
您可以在此处详细了解此问题