当使用 php include 函数时,include 被成功执行,但是在 include 输出之前它也在输出一个 char,这个 char 是十六进制值 3F 我不知道它是从哪里来的,虽然它似乎发生在每个包含中。
一开始我以为是文件编码,但是这似乎不是问题。我创建了一个测试用例来演示它:(链接不再有效)http://driveefficiently.com/testinclude.php该文件仅包含:
<? include("include.inc"); ?>
include.inc 仅包含:
<? echo ("hello, world"); ?>
然而,输出是:"?hello, world" 其中 ?是一个具有随机值的字符。正是这个值,我不知道它的来源,它有时会把我的网站搞得一团糟。
关于这可能来自哪里的任何想法?起初我认为这可能与文件编码有关,但我认为这不是问题。
最佳答案
您看到的是一个 UTF-8 字节顺序标记:
The UTF-8 representation of the BOM is the byte sequence EF BB BF, which appears as the ISO-8859-1 characters  in most text editors and web browsers not prepared to handle UTF-8.
PHP 不理解这些字符应该被“隐藏”,并将它们作为普通字符发送给浏览器。要摆脱它们,您将需要使用“适当的”文本编辑器打开文件,该编辑器允许您将文件另存为 UTF-8,不带前导 BOM。
关于PHP Include 函数输出未知字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647/