ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Буферизация вывода Php
  #1  
Старый 01.08.2008, 18:32
prescott
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме:
728470

Репутация: 115
Angry Буферизация вывода Php

Задача следующая:

Есть скрипт импорта БД пользователей. Импорт осуществляется из XML каталога, причем несколько минут.

Не могу сделать так чтобы скрипт вывел в браузер СРАЗУ какой либо текст, например "Идет импорт БД, ждите...", потом спокойно импортировал базу и вывел результат работы.

Обычно же PHP дожидается конца работы скрипта и лишь потом выводит всю страницу разом.

Баловался я с ob_end_flush() и т.д., но я уже видимо переработал, а доделать сегодня надо

Есть у кого рабочий пример? Вариант с аяксом и фреймами просьба не предлагать, результата нужно добится одним скриптом.

Последний раз редактировалось prescott; 01.08.2008 в 18:35..
 
Ответить с цитированием

  #2  
Старый 01.08.2008, 19:03
5triker
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
Провел на форуме:
771228

Репутация: 77
По умолчанию

пхп выполняется на сервере и только потом передается в браузер , сомневаюсь что можно обойтись без аякса и тп. вещей
 
Ответить с цитированием

  #3  
Старый 01.08.2008, 20:04
prescott
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме:
728470

Репутация: 115
По умолчанию

Знаю я слава богу что пхп серверный язык) НО видел я пхп скрипт который без джава скрипта выводил построчно данные в браузер, а вот реализации не знаю...
 
Ответить с цитированием

  #4  
Старый 01.08.2008, 20:55
razzzar
Участник форума
Регистрация: 16.06.2007
Сообщений: 107
Провел на форуме:
725870

Репутация: 208
По умолчанию

Код:
echo 'some text';
flush();
ob_flush();
эти действия выведут сразу в браузер строку 'some text'
 
Ответить с цитированием

  #5  
Старый 02.08.2008, 00:14
slav0nic
Новичок
Регистрация: 11.07.2008
Сообщений: 11
Провел на форуме:
48300

Репутация: 21
По умолчанию

может лучше использовать кеш в данном случае? на дёргать каждый раз базу попусту, особенно если данные не именились с момента последнего запроса...
 
Ответить с цитированием

  #6  
Старый 15.01.2009, 11:06
c411k
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);
}
__________________
ПИУ-ПИУ...
 
Ответить с цитированием

  #7  
Старый 15.01.2009, 11:19
bombeg
Участник форума
Регистрация: 27.10.2008
Сообщений: 244
Провел на форуме:
963613

Репутация: 428
По умолчанию

проще сделать ява скриптом... добавить в кнопку

Код HTML:
onclick="document.getElementById('progress').style.display = '';"

<div id="progress" style="display: none;">Идет добавление</div>
 
Ответить с цитированием

  #8  
Старый 15.01.2009, 15:51
Mixon
Участник форума
Регистрация: 12.03.2008
Сообщений: 254
Провел на форуме:
12333903

Репутация: 238
Отправить сообщение для Mixon с помощью ICQ
По умолчанию

Есле те надо лишь безсмысленный вывод слова,просто,то можно сделать вопше так

<?php
echo "Идет импорт баз,подождите!";
?>
<?php
твой код скрипта....
?>

тогда сервер обрабатывает ето как два роздельных скрипта,и тот что первый,выполнится,выведетс я результат,тогда второй будет выполнятся....Есчё есть схожая ф-цыя,

ob_implicit_flush(0);

есле ето в начала скрипта положить,то тогда будут выводится данные по мере загрузки,например так

<?php
ob_implicit_flush(0);
echo "Импор идет...";

твой код

?>

Так в начале загрузки выведется текст,скрипт будет выподнятся более как по очереди,с начала ето выводится,потому что тут обрабаотывать ненадо,потом будет обрабатяватся дальше и выводится....

Последний раз редактировалось Mixon; 15.01.2009 в 15:54..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Способы вывода WebMoney... *DeViL* Болталка 6 08.07.2008 01:26



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ