我目前面临着php和flush()的问题。它上周工作正常,但不是现在。
我尝试了几种方法,禁用我找到的所有缓冲系统(zlib,output_buffering),仍然没有解决方案。
我正在使用Symfony 3.2.7和PHP 5.6.26(在Windows 7上使用Xampp)。
我按照文档on Symfony,没有运气。我也在StackOverflow上尝试了几种解决方案,但也没有运气。
答案here无法解决问题,因为output_buffering设置为off,因此没有缓冲区可以与ob_flush()
刷新
我加入了StreamedResponse代码的一部分,以防问题出现在我的眼前。
$response = new StreamedResponse();
$response->setCallback(function (){
$directory = $this->container->getParameter("awstats.directory");
echo $this->render("StatBundle:Default:update.html.twig")->getContent();
flush();
foreach (scandir($directory) as $key => $file) {
if ( is_file( $directory . '\\' . $file ) )
{
$awf = new Awfile( $directory . '\\' . $file , $this->getDoctrine(), $this->container);
$awf->parseInit();
$awf->setStreamEnable(true);
$stats = $awf->saveLinks( $this->container->getParameter("awstats.regex") );
echo $this->render("StatBundle:Default:streamUpdateScript.html.twig")->getContent();
flush();
}
}
});
$response->sendHeaders();
$response->send();
所以如果您有任何想法,我会很乐意尝试!