0

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

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

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

但这会引发服务器 500 错误,并显示消息“来自脚本'index.php' 的标头格式错误:标头错误:内容长度”。

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

4

1 回答 1

1

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

// something like 'Content length: 1234'
header('Content-Length: ' . strlen($output));
于 2018-07-06T15:05:21.163 回答