PHP: Как я могу вывести HTML, пока скрипт все еще работает?

У меня есть скрипт, который проверяет статус нескольких сотен веб-страниц. Однако загрузка сценария занимает около 2 минут, и экран остается пустым, пока сценарий не завершит работу. Тогда все данные выводятся сразу.

Я хочу выводить данные, пока скрипт все еще работает. Вот часть моего скрипта:

foreach ($urls as $url){

    $headers = get_headers($url,true);
    $status = $headers[0];
    list($protocol, $code, $message) = explode(' ',$status,3);

    echo '<br>'.$url.'<br>'.$code.'<br>';

} 

person Linksku    schedule 11.07.2011    source источник
comment
Это может быть излишним, но рассматривали ли вы AJAX?   -  person user812786    schedule 11.07.2011


Ответы (2)


http://php.net/manual/en/function.flush.php содержит ответ, который вы ищете.

Имейте в виду, что это может негативно сказаться на вашей производительности, но, похоже, вам больше интересно наблюдать за прогрессом. :-)

person Caladain    schedule 11.07.2011
comment
Спасибо! Производительность не имеет большого значения, просто выглядит круто, когда он загружается построчно. - person Linksku; 11.07.2011

Это обычная функция, которую я использую во многих своих сценариях, чтобы видеть прогресс.

function flush_buffers() { 
    ob_end_flush(); 
    ob_flush(); 
    flush(); 
    ob_start(); 
}

Я не могу вспомнить первоисточник этой функции, вероятно, где-то на php.net!

Надеюсь, поможет!

person James    schedule 11.07.2011