我正在编写一个向客户端提供文件的(PHP)脚本。其中,Content-Length标头被发送,只有一个字节太多。当我将内容长度放在不同的标题中时,我发现了这一点,并比较了两者:
$filesize = filesize($file);
header('Content-Length: ' . $filesize);
header('X-Content-Length: ' . $filesize);
结果:
Content-Length: 3481
X-Content-Length: 3480
即使将3480
硬编码到header()
函数中,这也是结果。我怀疑Apache在我的标题中这样做。
可能导致这种情况的原因是什么?
编辑:给出一些上下文:我认为Zend Framework正在导致这种情况:我正在重构当前正在生产(并且正在工作)到ZF的代码,问题发生在那里。当我在ZF之外尝试这个代码时,一切都很顺利。也许ZF正在进行输出缓冲,并重新发送标题本身或其他东西,但我真的不太了解ZF。
答案 0 :(得分:0)
这不是Apache的做法,而是PHP开放标记与输出缓冲相结合的空格。