Показать сообщение отдельно

  #5  
Старый 15.12.2009, 19:21
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

Проблема не в порционности, а в асинхронности пхп. К примеру постепенный вывод wget'а (в приделах пхп) можно получать так:
PHP код:
$proc popen('wget http://some_url 2>&1','rb');
while (!
feof($proc))
{

    
$data=fgets($proc,100);
    
// \r нужно чтобы строка каждый раз затиралась
    
echo "\r".trim($data);

}
pclose($proc); 
Проблема только куда это записывать, чтобы аяксом считывать и скидывать в браузер. Например можно через файлы:
PHP код:
$i=0;
$proc popen('wget http://some_url 2>&1','rb');
// Открываем некоторый файл, в дальнейшем аяксом его читаем
$f fopen('test_popen.txt','wb');

while (!
feof($proc))
{
    for(
$j=0;$j<50;$j++) $data=fgets($proc);
    
fwrite($f"Line number:".($i++).' = '.trim($data).'                                       ');
    
fflush($f);rewind($f);
}
fclose($f);
pclose($proc); 
Тут не учтены гонки при чтении/записи.
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
 
Ответить с цитированием