HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 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
С нами: 10052876

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

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

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

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

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

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

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

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

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

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

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

  #6  
Старый 15.01.2009, 11:06
c411k
Reservists Of Antichat - Level 6
Регистрация: 16.07.2005
Сообщений: 653
С нами: 10957346

Репутация: 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
С нами: 9231271

Репутация: 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
С нами: 9560218

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

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

<?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 ™ © 2001- Antichat Kft.