есть скрипт, после сабмита выполняется ~10 сек хочу сразу после сабмита сразу вывести сообщение "идет поиск", затем страница догружается и выводится остальные данные гуглил про отключение буферизации,но не получается отключить вот пример кода Код (PHP): <?php header('Cache-Control: no-cache'); ini_set('output_buffering', 'off'); // Turn off PHP output compression ini_set('zlib.output_compression', false); ini_set('implicit_flush', true); ob_implicit_flush(); ob_end_flush(); ob_end_clean(); echo '1'; ob_flush(); flush(); for ($i=0;$i<5;$i++) { sleep(1); } echo '2'; print ob_get_level (); выводится все после выполнения скрипта
спасибо за идею а насчет буферизации- почему так сложно ее отключить? или это потому что ее не нужно отключать?
дело в том что буферизация в данном случае отключается только на уровне ответа пхп-машины вышестоящему процессу. если веб-сервер настроен получить полностью пакет данных и выбросить их пользователю только по завершению дочернего процесса - бесполезно пытаться выключить его на стороне пхп. ну и как бы нужно чуть более внимательно смотреть документацию. имплисид_флаш можно установить из сценария, аутпут_буфферинг - только через конфигурацию не ниже уровня каталога (.htaccess как минимум)
еще пример Код (Text): text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text <?php echo '1111'; flush(); sleep(5); echo '<h1>111111111111111111</h1>'; тут выводится часть текста, примерно 4кб, затем ожидается 5 сек, затем выводится остальная часть текста+ пхп вывод. странная логика. буфер заполнился до 4кб и сам очистился, но если явно заставить его очиститься, то буфер не очищается
Всё правильно. Через ini_set не получится отключить буферизацию потому, что этот параметр считывается в момент запуска PHP, ДО того, как php сможет выполнить любой скрипт. А берёт он этот параметр из php.ini, в котором по умолчанию буфер установлен размером 4096 байт. Вот в php.ini вы можете отключить буферизацию. Но тогда она отключится вообще для всего, что не самый лучший вариант. В php.ini смотрите параметр output_buffering. Добавлено спустя 1 минуту 41 секунду: Вот, если интересно, почитайте http://habrahabr.ru/company/mailru/blog/248573/
ну и все же для сайта в интернете это неправильный подход. отдал завершенную страницу с аяксом или рефрешем и ок. а дилеи делать в передаче это как бы сама обработка будет досить сервак плюс канал данных будет неестественным образом использоваться.