За последние 24 часа нас посетили 63864 программиста и 1743 робота. Сейчас ищут 1608 программистов ...

Перестала работать функция flush();

Тема в разделе "Прочие вопросы по PHP", создана пользователем SAIYAJIN, 23 апр 2016.

  1. SAIYAJIN

    SAIYAJIN Новичок

    С нами с:
    23 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    Суть вопроса в названии темы, перестала работать функция
    Код (Text):
    1. flush();
    , 3 дня использовал скрипт с участием этой функцией, сегодня мистическим образом перестала работать:oops:


    Стоит локальный сервер на win10
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Может без этой функции можно обойтись? Что за задача?
     
  3. SAIYAJIN

    SAIYAJIN Новичок

    С нами с:
    23 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    Без функции можно обойтись вполне, я её использую для типо "онлайн логов" при работе скрипта, просто интересно, с чего это она вдруг перестала работать, для опыта в будущем
     
  4. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Серверные модули для Apache, такие как mod_gzip, могут сами выполнять буферизацию, поэтому flush() не приводит к немедленной передаче данных клиенту.
    В документации еще несколько нюансов есть.
     
  5. SAIYAJIN

    SAIYAJIN Новичок

    С нами с:
    23 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    Почему тогда эта функция работала до сегодня?
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    либо ночью прилетели инопланетяне и всё сломали, либо ты изменил входные данные и забыл об этом.
    В любом случае, без куска кода никто ничего не поймёт...
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    от размера вывода зависит. Вебсервер буферит в свой буфер - потом скидывает. Может до сегодня вывод был больше, чем сейчас.
     
  8. SAIYAJIN

    SAIYAJIN Новичок

    С нами с:
    23 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    Например
    Код (Text):
    1. for($i=0; $i<10; $i++) {
    2.     echo $i.'<br>';
    3.     flush();
    4.     sleep(1);
    5. }
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ну оно так редко когда работает. А зачем тебе? Тебе скорее всего нужен аякс. Потому что флашить буфер нужно крайне редко и после этого обычно пхп завершает свою работу, т.к. досрочно отправил, что хотел. Это нечасто используется.

    Ты наверное хочешь выводить что-то порциями, но пхп плохо себя ведёт, если его на долго занимать чем-то. Лучше использовать ajax запросы.
     
  10. SAIYAJIN

    SAIYAJIN Новичок

    С нами с:
    23 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    Я конечно же уже сделал реализацию немного по другому, но кстати говоря функция заработала, проблема была в каком то китайском антивирусе который когда то по тихому установился