Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Потоковый вывод данных, Как сделать? 
:(
    Опции темы
Megas
Дата 15.1.2006, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Кто знает как сделать потоковый вывод данных?
К примеру у меня есть скрипт который обрабатывает некие данные, на полное вычесление уходит несколько минут. Так вот в нормальном случае все данные покажутся только когда скрипт закончит работать, а мне нужно сделать так, чтоб по мере работы, скрипт выдавал пользователю определёные результаты уже на начальной стадии.

PM WWW   Вверх
Mal Hack
Дата 15.1.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



PM ICQ   Вверх
Megas
Дата 15.1.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Mal Hack
ob_ функции мне известны, это совсем не то. Это просто монипуляции с буффером вывода, а мне нужно именно потоковый вывод.

Уже примерно нашел, как сделать поток. Набор функций stream_ . Но проблема в том, что не могу найти нигде хороших примеров использования этих функций. smile
PM WWW   Вверх
Janus
Дата 15.1.2006, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 26.9.2005

Репутация: 1
Всего: 1



Цитата(Megas @ 15.1.2006, 19:56 Найти цитируемый пост)

Набор функций stream_

Никогда не слышал. Можешь дать ссылку на справочник?
--------------------
Проект "Репликатор" 
PM MAIL   Вверх
Illuminaty
Дата 15.1.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: нет
Всего: 56



наверное, имеются ввиду эти функции
PM MAIL ICQ   Вверх
Megas
Дата 15.1.2006, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Цитата
наверное, имеются ввиду эти функции

Нда именно они, но мне уже кажется что это не то smile
PM WWW   Вверх
wsr
Дата 15.1.2006, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Эти все функции больно жестокие! Я для таких целей использую
STDIN и STDOUT.
Только вот для выполнения длительных операций я использую коммандную строку!
http://lock-team.com/files/wsr_vs_php.rar

Это пример работы с потоками! Я написал небольшой скрипт который создает мне плей-лист для винампа всего за несколько секунд.
Получилось почти как консольное приложение!
В общем сморти видео, смотри исходник.
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 15.1.2006, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



wsr ты бы код положил, а не архив...
stream ресурсов жрать много будет.
PM ICQ   Вверх
wsr
Дата 15.1.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Короче говоря:
Как же я люблю проводить анологию между PHP и Paskal

Вот как это выглядит на паскале:
Код

readln ( a );

Чтение вводимых данных в переменную (a)

Код

$a = trim ( fgets ( STDIN ) );

Результат тот же! В процессе выполнения скрипта интерпретатор останавливается, и ждет ввода данных с клавиатуры (нажатия клавиши Enter)

Ну а теперь вывод.
Код

writeln ( a );

Вывод инфры которая содержится в переменной (a)

Теперь тоже самое только на PHP
Код

fputs ( STDOUT, $a );

Результат одинаковый!

Так же текст для вывода должен находиться в ДОС'овской кодировке!

Еще один факт. Нужно запускать скрипт из консоли. И нужна поддержка CLI (Command Line Interface) в PHP.
Так что пользоваться моим способом не получится на урезанном ПХП который в Денвере находится!

Mal Hack. Надеюсь популярно объяснил?
Добавлено @ 21:52
Обязательно при использовании (STDIN) переменную с введенными данными нужно прогнать через trim так как в эти данные включается перенос строки!
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
Megas
Дата 15.1.2006, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



wsr
Посмотрел твой пример. Это не то о чом я спрашиваю.

Вот вам пример, того, что мне нужно: http://www.helpfulinformation.org/seo-tools/keywordanal.pl

После ввода данных скрипт рисует таблицу, а затем начинает поточно подгружать ява-функции которые уже собственно и рисуют данные в таблице. Так вот я попытался сделать тоже самое, но у меня страница не открывается до тех пор, пока не закончит работать сам пхп-скрипт.
Тоесть во время работы пхп-скрипта, я постепенно отсылаю на выход ява-функции командой echo. Но пользователь не получает всего того что я отсылаю до тех пор, пока пхп-скрипт не закончит работу.

Воопщем что делать, я не знаю. Возможно нужно просто прописать какойто параметр в headers который укажет браузеру, что эту страницу нужно открывать поточно, но вот какой параметр?
PM WWW   Вверх
Megas
Дата 16.1.2006, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Воопщем нашел решение сам.

Mal Hack был изночально частично прав, нужно использовать ob_flush() вместе с flush() каждый раз когда нужно сбросить данные из буфера. Только тогда происходит обновление у пользователя.
PM WWW   Вверх
Mal Hack
Дата 16.1.2006, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



wsr поясни, как STDIN использовать? В сях, паскале понятно, но в ПХП это имеет смысл только для консоли...
У меня вышеуказанный код отказывался транслироваться.

Это сообщение отредактировал(а) Mal Hack - 16.1.2006, 19:23
PM ICQ   Вверх
wsr
Дата 17.1.2006, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Mal Hack. Ты собственно сам ответил на свой вопрос!
Цитата

в ПХП это имеет смысл только для консоли...

Я просто сначала подумал, что Megas'к нужно какие-нить данные на локале обработать!
Просто я использую пхп иногда и для различных сортировок и т.д.
А STD*** действительно работает только в консоли.
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
Janus
Дата 17.1.2006, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 26.9.2005

Репутация: 1
Всего: 1



На http://www.helpfulinformation.org/seo-tools/keywordanal.pl это делается через JavaScript. Я пробовал такой метод - работает не во всех браузерах.
--------------------
Проект "Репликатор" 
PM MAIL   Вверх
Opik
Дата 19.5.2006, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



www.php.net/flush 
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.