ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

01.08.2008, 18:32
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
Буферизация вывода Php
Задача следующая:
Есть скрипт импорта БД пользователей. Импорт осуществляется из XML каталога, причем несколько минут.
Не могу сделать так чтобы скрипт вывел в браузер СРАЗУ какой либо текст, например "Идет импорт БД, ждите...", потом спокойно импортировал базу и вывел результат работы.
Обычно же PHP дожидается конца работы скрипта и лишь потом выводит всю страницу разом.
Баловался я с ob_end_flush() и т.д., но я уже видимо переработал, а доделать сегодня надо
Есть у кого рабочий пример? Вариант с аяксом и фреймами просьба не предлагать, результата нужно добится одним скриптом.
Последний раз редактировалось prescott; 01.08.2008 в 18:35..
|
|
|

01.08.2008, 19:03
|
|
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
Провел на форуме: 771228
Репутация:
77
|
|
пхп выполняется на сервере и только потом передается в браузер , сомневаюсь что можно обойтись без аякса и тп. вещей
|
|
|

01.08.2008, 20:04
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
Знаю я слава богу что пхп серверный язык) НО видел я пхп скрипт который без джава скрипта выводил построчно данные в браузер, а вот реализации не знаю...
|
|
|

01.08.2008, 20:55
|
|
Участник форума
Регистрация: 16.06.2007
Сообщений: 107
Провел на форуме: 725870
Репутация:
208
|
|
Код:
echo 'some text';
flush();
ob_flush();
эти действия выведут сразу в браузер строку 'some text'
|
|
|

02.08.2008, 00:14
|
|
Новичок
Регистрация: 11.07.2008
Сообщений: 11
Провел на форуме: 48300
Репутация:
21
|
|
может лучше использовать кеш в данном случае? на дёргать каждый раз базу попусту, особенно если данные не именились с момента последнего запроса...
|
|
|

15.01.2009, 11:06
|
|
Reservists Of Antichat - Level 6
Регистрация: 16.07.2005
Сообщений: 653
Провел на форуме: 8854279
Репутация:
2727
|
|
PHP код:
<?php
@ini_set('output_buffering',0);
@set_time_limit(0);
@ob_implicit_flush(1);
function myflush($timee)
{
if(ob_get_contents())
{
ob_flush();
ob_clean();
flush();
usleep($timee);
}
}
for($n = 0; ++$n <= 1111111;)
{
echo $n.'<br>';
myflush(1);
}
__________________
ПИУ-ПИУ...
|
|
|

15.01.2009, 11:19
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 244
Провел на форуме: 963613
Репутация:
428
|
|
проще сделать ява скриптом... добавить в кнопку
Код HTML:
onclick="document.getElementById('progress').style.display = '';"
<div id="progress" style="display: none;">Идет добавление</div>
|
|
|

15.01.2009, 15:51
|
|
Участник форума
Регистрация: 12.03.2008
Сообщений: 254
Провел на форуме: 12333903
Репутация:
238
|
|
Есле те надо лишь безсмысленный вывод слова,просто,то можно сделать вопше так
<?php
echo "Идет импорт баз,подождите!";
?>
<?php
твой код скрипта....
?>
тогда сервер обрабатывает ето как два роздельных скрипта,и тот что первый,выполнится,выведетс я результат,тогда второй будет выполнятся....Есчё есть схожая ф-цыя,
ob_implicit_flush(0);
есле ето в начала скрипта положить,то тогда будут выводится данные по мере загрузки,например так
<?php
ob_implicit_flush(0);
echo "Импор идет...";
твой код
?>
Так в начале загрузки выведется текст,скрипт будет выподнятся более как по очереди,с начала ето выводится,потому что тут обрабаотывать ненадо,потом будет обрабатяватся дальше и выводится....
Последний раз редактировалось Mixon; 15.01.2009 в 15:54..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|