php - 不显示ob_start()的输出;

时间:2018-05-18 09:36:35

标签: php apache fpm ob-start

我试图在从apache获得200响应之后在后台运行PHP脚本,但是,它无法正常工作,我遇到了以下代码的一个小问题,我不确定原因。

<?php
ignore_user_abort(true);
set_time_limit(0);

ob_start();
header('Content-Type: application/json');
// output the array to screen
echo json_encode(['data' => 'foo']);
header('Connection: close');
header('Content-Length: ' . ob_get_length());
ob_end_flush();
ob_flush();
flush();
// run the rest of the code in background

我收到状态代码200,但在完成完整的脚本过程之后,它输出上面的json数组的脚本。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。

我在服务器上启用了gzip,所以我添加了标题:

header("Content-Encoding: none");  
在ob_start()之后

;它完美无缺。