За последние 24 часа нас посетили 23923 программиста и 1666 роботов. Сейчас ищут 828 программистов ...

как поставить таймаут средствами php?

Тема в разделе "PHP для новичков", создана пользователем BMWSauber, 8 фев 2010.

  1. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    Код (Text):
    1. <?php
    2. $country = array(3,11);
    3. for ($i=0; $i<count($country); $i++) {
    4. echo $country[$i];
    5. }
    6. ?>
    выводит 311, а как сделать что б "3..... таймоут ....11"
     
  2. VItalijs

    VItalijs Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
  3. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    VItalijs
    Не в обиду сказано, но глуповатый ответ, учитывая, что вопрос имеет место быть и имеет решение.

    BMWSauber
    PHP:
    1. <?php
    2. // Активация буферизации вывода
    3.  
    4. while(true) {
    5.     echo date("s");
    6.  
    7.     // Выплёвываем буфер
    8.     ob_flush();
    9.     flush();
    10.  
    11.     // Tаймер на 1 сек.
    12.     sleep(1)
    13. }
    14.  
    15. ?>
     
  4. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    Apple спасибо. )) ток ; забыл в 14 строке ))))
     
  5. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    немного сократил твой код Apple под свой вопрос, получилось -
    Код (Text):
    1. <?php
    2. $country = array(3,11);
    3.  
    4. // Активация буферизации вывода
    5. for ($i=0; $i<count($country); $i++) {
    6. echo $country[$i];
    7.  
    8. // Выплёвываем буфер
    9. flush();
    10.  
    11. // Tаймер на 1 сек.
    12. sleep(5);
    13. }
    14. ?>
     
  6. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Apple - Не в обиду сказано, но глуповатый ответ, учитывая, что вопрос неточен или не имеет решение.

    указанный тобой пример все равно выдаст все цифры в строку пусть и с интервалом (то-есть цифры в браузере будут склеены) причем не всегда они будут клеится по с интервалом. При этом если не забывать про частое ограничение в 60 секунд на работу скрипта - то очень легко, используя данный подход огрести, кучу ошибок. Человек явно не понимает что выдача все равно идет одноразово (то есть это не каждый раз новая страничка - а одна размазанная по времений - что никак не соответсует логике протокола). Твой совет в итоге не точен и вреден.

    если хочется сделать отрисовку во времени то это можно аяксом (запрашивать новые данные через определенный интервал), или сразу отдать контент который будет рисовать новые данные через определенный интервал.
    пример приводить лень - особенно с аяксом.

    потому прямой ответ na-tanke - ближе к истине чем тот что дал ты.
     
  7. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    nimistar цыфры на одной станице в одну строку с интервалом времени, это то о чем я и спрашивал.
     
  8. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    BMWSauber - тоесть это не для отображения ?
     
  9. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Мне прекрасно известно, что выдаст мой пример и как он работает.
     
  10. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\grab\anextour.php on line 107
    а вот это проблема........
     
  11. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    А это не проблема, а показательсь, что пример используется не по назначению.
     
  12. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    Apple- у меня идет длительный запрос к удаленному сайту, и он (сайт) обрубает запрос через 30 сек. сам запрос состоит из многих маленьких по 11 сек. хотел поставить паузы между ними, но бестолку.(( будем лопатить ajax
     
  13. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    мне надо дать статус телепата ? :)

    если нужен запрос через интервал - это одно
    если нужен ответ через интервал это другое

    а объединять слипом задачу в одном запросе - это бред, для протокола HTTP
     
  14. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Юзай curl или сокеты.
    Но я предполагаю, что скрипт у тебя работает локально.
     
  15. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
  16. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    nimistar нужен запрос через интервал.
     
  17. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    тут не очень любят когда воруют контент ....

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

    методы запуска процесса мастером могут быть разными - socket(curl), cli, pcntl_fork...

    если хочешь чтобы скрипт сам опрашивал статусы с определенной периодичностью .. можешь настроить авто запросы из джаваскрипта или обновлять страничку автоматом
     
  18. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    ни где не любят... )))
     
  19. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Бери -> "статус телепата"

    Будешь теперь им телепать :)
     
  20. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    nimistar да так и сделаю.. цикл на жабаскрипте (с settimout) а запросы сделаю меньше. должно работать. вобщем всем спасибо.