Я пытаюсь заставить 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
Это работает, но только в среде 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
Пытаться
<?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 работает неправильно
echo str_pad( $i . '<br>', 4 * 1024 + 10, ' ', STR_PAD_RIGHT );