![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Megas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
Кто знает как сделать потоковый вывод данных?
К примеру у меня есть скрипт который обрабатывает некие данные, на полное вычесление уходит несколько минут. Так вот в нормальном случае все данные покажутся только когда скрипт закончит работать, а мне нужно сделать так, чтоб по мере работы, скрипт выдавал пользователю определёные результаты уже на начальной стадии. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
||||
|
||||
| Megas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
Mal Hack
ob_ функции мне известны, это совсем не то. Это просто монипуляции с буффером вывода, а мне нужно именно потоковый вывод. Уже примерно нашел, как сделать поток. Набор функций stream_ . Но проблема в том, что не могу найти нигде хороших примеров использования этих функций. |
|||
|
||||
| Janus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 26.9.2005 Репутация: 1 Всего: 1 |
Никогда не слышал. Можешь дать ссылку на справочник? --------------------
Проект "Репликатор" |
|||
|
||||
| Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: нет Всего: 56 |
наверное, имеются ввиду эти функции
|
|||
|
||||
| Megas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
Нда именно они, но мне уже кажется что это не то |
|||
|
||||
| wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Эти все функции больно жестокие! Я для таких целей использую
STDIN и STDOUT. Только вот для выполнения длительных операций я использую коммандную строку! http://lock-team.com/files/wsr_vs_php.rar Это пример работы с потоками! Я написал небольшой скрипт который создает мне плей-лист для винампа всего за несколько секунд. Получилось почти как консольное приложение! В общем сморти видео, смотри исходник. --------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
wsr ты бы код положил, а не архив...
stream ресурсов жрать много будет. |
|||
|
||||
| wsr |
|
||||||||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Короче говоря:
Как же я люблю проводить анологию между PHP и Paskal Вот как это выглядит на паскале:
Чтение вводимых данных в переменную (a)
Результат тот же! В процессе выполнения скрипта интерпретатор останавливается, и ждет ввода данных с клавиатуры (нажатия клавиши Enter) Ну а теперь вывод.
Вывод инфры которая содержится в переменной (a) Теперь тоже самое только на PHP
Результат одинаковый! Так же текст для вывода должен находиться в ДОС'овской кодировке! Еще один факт. Нужно запускать скрипт из консоли. И нужна поддержка CLI (Command Line Interface) в PHP. Так что пользоваться моим способом не получится на урезанном ПХП который в Денвере находится! Mal Hack. Надеюсь популярно объяснил? Добавлено @ 21:52 Обязательно при использовании (STDIN) переменную с введенными данными нужно прогнать через trim так как в эти данные включается перенос строки! --------------------
ICQ : 918-318Сайт : Lock-Team |
||||||||
|
|||||||||
| Megas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
wsr
Посмотрел твой пример. Это не то о чом я спрашиваю. Вот вам пример, того, что мне нужно: http://www.helpfulinformation.org/seo-tools/keywordanal.pl После ввода данных скрипт рисует таблицу, а затем начинает поточно подгружать ява-функции которые уже собственно и рисуют данные в таблице. Так вот я попытался сделать тоже самое, но у меня страница не открывается до тех пор, пока не закончит работать сам пхп-скрипт. Тоесть во время работы пхп-скрипта, я постепенно отсылаю на выход ява-функции командой echo. Но пользователь не получает всего того что я отсылаю до тех пор, пока пхп-скрипт не закончит работу. Воопщем что делать, я не знаю. Возможно нужно просто прописать какойто параметр в headers который укажет браузеру, что эту страницу нужно открывать поточно, но вот какой параметр? |
|||
|
||||
| Megas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
Воопщем нашел решение сам.
Mal Hack был изночально частично прав, нужно использовать ob_flush() вместе с flush() каждый раз когда нужно сбросить данные из буфера. Только тогда происходит обновление у пользователя. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
wsr поясни, как STDIN использовать? В сях, паскале понятно, но в ПХП это имеет смысл только для консоли...
У меня вышеуказанный код отказывался транслироваться. Это сообщение отредактировал(а) Mal Hack - 16.1.2006, 19:23 |
|||
|
||||
| wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Mal Hack. Ты собственно сам ответил на свой вопрос!
Я просто сначала подумал, что Megas'к нужно какие-нить данные на локале обработать! Просто я использую пхп иногда и для различных сортировок и т.д. А STD*** действительно работает только в консоли. --------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
| Janus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 26.9.2005 Репутация: 1 Всего: 1 |
На http://www.helpfulinformation.org/seo-tools/keywordanal.pl это делается через JavaScript. Я пробовал такой метод - работает не во всех браузерах.
--------------------
Проект "Репликатор" |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
www.php.net/flush
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |