2017-01-20 19 views
1

Я следующий скрипт:ob_flush() работает на локальном хосте, но не на сайте GoDaddy

<?php 
ob_end_flush(); 
ob_start(); 
for ($i=0; $i < 10; $i++) { 
    echo "Line ".$i."</br>"; 
    ob_flush(); 
    flush(); 
    sleep(1); 
} 
ob_end_flush(); 
?> 

Он отлично работает на WAMP LOCALHOST и печатает новую строку каждый второй, но на сайте GoDaddy экономики хостинга, это Безразлично Не работай. Он показывает результат через 10 секунд, когда ничего не происходит, кроме загрузки страницы.

Что может быть неправильным?

+0

Вызвать функцию phpinfo(); в отдельном php-скрипте и запустить его на своем хост-сервере, чтобы узнать, включен ли ob_flush() на вашем хост-сервере в GoDaddy –

+0

Что именно включено? – MahmoudTarek

+0

output_buffering = On или output_buffering = 4096 должно быть установлено вместо output_buffering = off в вашем PHP.ini – Kaylined

ответ

3
It will work fine.... 

if(!ob_get_level()) ob_start(); 
echo json_encode(array('valid'=>true,'msg'=>'Flush occured.')); 
$size = ob_get_length(); 
header("Content-Type: application/json"); 
// Set the content length of the response. 
header("Content-Length: {$size}"); 
//Close the connection if you want to. 
header("Connection: close"); 
// Flush all output. 
ob_end_flush(); 
ob_flush(); 
flush(); 
// Close current session (if it exists). 
if(session_id()) session_write_close();