如何为TWIG呈现的页面返回Content-Length标头?

时间:2018-07-06 13:29:59

标签: php http-headers twig content-length

我正在渲染TWIG模板以生成要下载的CSV文件。为了显示下载的进度条,服务器必须返回Content-Length标头。

我尝试将TWIG模板渲染为变量,计算该字符串的长度,然后在回显渲染的模板之前立即输出content-length标头:

$output = $twig->render(...);
header('Content-Length', strlen($output));
echo $output;

但这会引发服务器500错误,并显示消息“脚本'index.php'的标头格式错误:标头错误:Content-Length”。

我在这里错过了什么吗?看来这应该是微不足道的。

1 个答案:

答案 0 :(得分:1)

传递给header()的第一个参数应该是完整的标题字符串。我猜您希望标头函数接受第一个和第二个参数,例如header(field name,field value),但事实并非如此。您应该将标头作为单个字符串,如下所示:

// something like 'Content length: 1234'
header('Content-Length: ' . strlen($output));