未刷新php脚本的内容
我有以下代码(它使用服务器端事件,但问题是刷新不起作用): 我无法更改它,我尝试将未刷新php脚本的内容,php,apache,eventsource,Php,Apache,Eventsource,我有以下代码(它使用服务器端事件,但问题是刷新不起作用): 我无法更改它,我尝试将ob\u start()添加到我的脚本ini\u集('output\u buffering',0)并删除ob\u flush,但这没有帮助 我还尝试将目录的output_buffering设置为0 in.user.ini,php信息显示本地值为0,但服务器端事件仍然不起作用,我一次获取所有事件,开发工具使用空类型显示(挂起),直到10秒后完成 有人知道怎么解决这个问题吗 编辑: 我再次尝试运行该代码(几年后在Fe
ob\u start()
添加到我的脚本ini\u集('output\u buffering',0)
并删除ob\u flush
,但这没有帮助
我还尝试将目录的output_buffering设置为0 in.user.ini,php信息显示本地值为0,但服务器端事件仍然不起作用,我一次获取所有事件,开发工具使用空类型显示(挂起)
,直到10秒后完成
有人知道怎么解决这个问题吗
编辑:
我再次尝试运行该代码(几年后在Fedora/Linux上),但它给出了相同的结果。Gzip未打开,但消息显示在末尾
我试过:
- 添加标题
“X-Accel-Buffering”=>“否”
- 还添加了
echo“事件:”$事件。“\n”代码>
$ grep -E 'user_ini|output_buffer|zlip.' /etc/php.ini | grep -v '^;'
user_ini.filename = ".user.ini"
output_buffering = 4096
所以我也尝试过,将.user.init
文件设置为:
output_buffering = 0
及
但它也不起作用。脚本正在等待一次返回所有内容。如果我使用$string\u length=4096
即使是phpinfo也表示此目录的输出缓冲区在本地被禁用
EDIT2:
看起来flush正在我的共享主机上工作,但我不能在Fedora上本地测试它,因为flush不工作
这里是我本地phpinfo输出的链接:我已经通过apache启用了gzip压缩。对这个问题的回答解决了这个问题:
服务器有一些压缩(gzip或类似)?@kikko088
zlib.output\u compression
设置为Offtry以添加头(“X-Accel-Buffering:no”)@kikko088没有帮助。这是很久以前的事了,但这个解决方案在Fedora中似乎与我的共享主机不一样。“网络”选项卡显示gzip并没有打开,它仍然同时显示所有消息。
Cache-Control: no-cache
Connection: keep-alive, Keep-Alive
Content-Type: text/event-stream;charset=UTF-8
Date: Tue, 17 Sep 2019 07:40:44 GMT
Keep-Alive: timeout=5, max=92
Server: Apache/2.4.41 (Fedora) OpenSSL/1.1.1c
Transfer-Encoding: chunked
X-Accel-Buffering: no
X-Powered-By: PHP/7.2.22
$ grep -E 'user_ini|output_buffer|zlip.' /etc/php.ini | grep -v '^;'
user_ini.filename = ".user.ini"
output_buffering = 4096
output_buffering = 0
output_buffering = Off