簡體   English   中英

PHP刷新不起作用

[英]PHP flush don't work

我試圖讓PHP刷新工作2個小時,但我無法使其工作,在localhost中它可以工作,但是當我將其拖到服務器上時,它就停止工作了。 代碼是這樣的:

<?php
  ob_implicit_flush(true);
  ob_end_flush();
  for ($i=0; $i<5; $i++) {
    echo $i.'<br>';
    sleep(1);
  }
?>

我嘗試了許多其他版本,但我喜歡的所有版本僅在localhost上可用(如此),但在我的服務器上不可用,我讀到某個地方,它將在php.ini文件中更改某些行而得到修復,但是我m使用Aruba托管Windows域,因此我無法編輯php.ini,我該怎么辦?

更新:我在其他兩個免費托管服務上試用了它,並且可以在它們上使用,這只是我的主要托管服務造成的問題:這可能是什么?
更新:由於我發現很多腳本都使用ini_set,因此我嘗試檢查它們設置的值,但我不知道它們是否有用:
session.use_trans_sid 0 output_buffering 4096 zlib.output_compression Off

嘗試

<?php

  ini_set('session.use_trans_sid', 0);

  ob_implicit_flush(true);
  ob_end_flush();
  for ($i=0; $i<5; $i++) {
    echo $i.'<br>';
    sleep(1);
  }
?>

或檢查: php hidden_​​flush命令無法正常工作

這有效,但僅在默認的Apache環境中:

<?php
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);
if( !ob_get_level() ){ ob_start(); }
else { ob_end_clean(); ob_start(); }
for ($i = 0; $i < 10; $i++) {
  //For Nginx we have to reach minimum  buffer size, 
  //so if it is not enough increment output
  echo str_pad( $i . '<br>', 1024 + 10, ' ', STR_PAD_RIGHT ); 
  flush();
  ob_flush();
  sleep(1);
}

Nginx需要更多配置:

通常在/etc/nginx/nginx.conf中

gzip off;
proxy_buffering off;
fastcgi_buffer_size 1k;       #set buffer to 1k
fastcgi_max_temp_file_size 0;
fastcgi_buffers 128 1k;       #set max buffer size to 1k + 128*1k

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM