отдать ответ клиенту, закрыть соединение и разлочить сессию. полезно, когда нужно быстро ответить клиенту, чтобы он мог продолжить работу, а самим запустить длительный процесс.
/**
* сбрасывает ответ клиенту и выполняет все необходимые действия,
* после которых можно продолжить длительный процесс не мешая клиенту пользоваться сайтом
* @param $response
* @param array $headers
*/
function flushResponse($response, $headers = [])
{
ignore_user_abort(true);
ob_start();
echo $response;
header('Connection: close');
header('Content-Length: '.ob_get_length());
header('Status: 200');
if(!empty($headers)){
foreach ($headers as $header) {
header($header);
}
}
session_write_close();
ob_flush();
flush();
if(function_exists('fastcgi_finish_request')){
fastcgi_finish_request();
}
}