PHP-флеш не работает

0

Я пытаюсь заставить 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, поэтому я не могу редактировать php.ini, как я могу это сделать?

Обновление: я попробовал это на других двух бесплатных хостингах, и он работает над ними, это просто мои основные услуги хостинга, которые делают проблему: что это может быть?
Обновление. Поскольку многие скрипты, которые я нашел, используют ini_set. Я попытался проверить значения, которые они установили, я не знаю, могут ли они быть полезными:
session.use_trans_sid 0 output_buffering 4096 zlib.output_compression Off

Теги:
flush

2 ответа

0
Лучший ответ

Это работает, но только в среде 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
  • 0
    это может работать, но я использую хостинг Windows, поэтому эта папка не существует :(
  • 0
    В Windows не беспокойтесь о конфигурации nginx, попробуйте увеличить выходные байты, попробуйте достичь 4096 байтов для строки. echo str_pad( $i . '<br>', 4 * 1024 + 10, ' ', STR_PAD_RIGHT );
0

Пытаться

<?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 implicit_flush работает неправильно

  • 0
    Я не сомневаюсь, что это может сработать, я просто не знаю, как?
  • 0
    Не уверен также, наткнулся на это во время поиска в Google. Я отредактировал свое сообщение со ссылкой на другой вопрос StackOverflow. Вы должны попробовать это.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню