一般情况网上的代码在apache上面是正常执行,nginx是不会生效的,原因:
(1)、nginx默认的缓冲区配置很大,你输出的内容不能填充满缓冲区,所以不能触发发送给客户端,配置如下:
fastcgi_buffer_size 64k; fastcgi_buffers 4 64k;
可以调整配置更小一点,或者使用php先输出一堆空填充信息,让缓冲区溢满。
(2)、nginx默认开启gzip压缩,压缩的本质是内容越长压缩效率越好,因此gzip需要获取完整的内容压缩后发送给客户端,可以关闭此配置
当然也可以直接不修改nginx配置,使用php解决,浪费我2天下班时间,特此记录。
header('Content-Type: text/event-stream'); // 以事件流的形式告知浏览器进行显示
header('Cache-Control: no-cache'); // 告知浏览器不进行缓存
header('X-Accel-Buffering: no'); // 关闭加速缓冲
echo '输出信息';
ob_flush();
flush();if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is post '); } elseif ($_SERVER['...
php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/* * 获取当前PHP文件名称 */ if (!function_exists('phpself...
如果想在windows中执行php,并且让php脚本在后台运行,可以用下面的cmd命令start /b php D:\wwwroot\default\demo1\run.php例如上面的命令意思后台运行run.php,如果想用php编写异步代码: ...
xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...
重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/** * 获取应用根目录 * @return string */ public static function getRootP...
【一】.介绍session由于HTTP是无状态的请求,创建一个会话需要保持必须需要身份标识。当用户第一次访问,PHP会为用户创建一个唯一的sessionid,并将sessionid通过cookie发送给浏览器,并在服务器的临时文件创建一个以sessionid为名的文件用来保存这个sessionid保...