我最近从Amazon Elastic Beanstalk迁移到了我自己的ubuntu 14.04 lts服务器。除了使用ob_flush
的一个页面并继续进行处理之外,一切都顺利移植。这是代码块:
<?php
//put string of page ----> $string
ob_end_clean();
header("Connection: close");
ignore_user_abort(true); // optional
ob_start();
echo ($string);
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Strange behaviour, will not work
flush(); // Unless both are called !
session_write_close(); // Added a line suggested in the comment
// Do processing here
sleep(10);
//do stuff
echo "something";
我希望打印$ string的内容,而不是$ string的内容,然后是&#34;&#34;&#34;打印。在这个片段中,&#34;&#34;&#34;还会打印。我已禁用mod_pagespeed(当前已启用),并确保将gzip和缓冲区输出设置为关闭。
Here是我的php.ini
文件(因为它没有删节,可能与问题无关)我把它放在了异地。我也怀疑这可能与我的apache配置文件有关,你可以看到Here。最后,如果这与我的问题有关,here is a link到我的pagespeed配置。当我调用该函数时,错误日志显示没有错误,另外我有对服务器的root访问权限。感谢您帮助我解决此问题!
Jake Sylvestre
答案 0 :(得分:0)
我认为你混淆了ob_get_contents和ob_end_flush看到:http://php.net/manual/en/function.ob-start.php。