Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 51
от 20.04.2005, 10:30

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 4


Вопрос № 19753: Уважаемые Эксперты! Прочитал у Котерова про функцию ob_start() Пытаюсь применить ее, пишу простейший код: ob_start(); echo "1"; - echo все равно выводит в броузер. В чем дело? ...

Вопрос № 19753
Уважаемые Эксперты!
Прочитал у Котерова про функцию ob_start()
Пытаюсь применить ее, пишу простейший код:
ob_start();
echo "1";
- echo все равно выводит в броузер.
В чем дело?
Отправлен: 15.04.2005, 10:27
Вопрос задал: chiefff (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: Смирных Сергей Владимирович
Здравствуйте, chiefff!
echo всегда будет выводить в броузер!
Ответ отправил: Смирных Сергей Владимирович (статус: 2-ой класс)
Отправлен: 15.04.2005, 10:33
Оценка за ответ: 2
Комментарий оценки:
Нет, не всегда, коллега.
Цитирую Котерова: "Вызов данной функции говорит PHP, что необходимо начать "перехват" стандартного выходного потока. Иными словами, весь текст, который выводится операторами echo... будет накапливаться в специальном буфере, а не отправится в броузер"...

Отвечает: Евгений Неверов
Здравствуйте, chiefff!
Верно. ob_start() только начинает слежение за буфером вывода. Чтобы очистить буфер: ob_end_clean(); Чтобы считать всё, что было выведено: ob_get_contents(); Подробности можно узнать на php.net
Ответ отправил: Евгений Неверов (статус: 4-ый класс)
Отправлен: 15.04.2005, 14:07
Оценка за ответ: 3
Комментарий оценки:
Про очистку буфера - это понятно. Перечисленные Вами функции работают с содержимым буфера - но для этого сначала нужно перенаправить выходной поток в этот самый буфер. А этого не происходит. Вот я и хотел бы понять: почему?

Отвечает: Strory
Здравствуйте, chiefff!
Дело в том, что эта функция не запрещает вывод, а буферизует его. После echo закончился скрипт и весь вывод идёт из буфера в броузер.
--
С уважением,
  Strory.
Ответ отправил: Strory (статус: Практикант)
Отправлен: 17.04.2005, 06:26
Оценка за ответ: 5
Комментарий оценки:
Спасибо!
Я уж и сам разобрался, все работает.

Отвечает: boom
Здравствуйте, chiefff!
:) интересно ... папробовал, да, действительно выводит.
скорей всего если вклучена буферизация буфера ob_start(); и буфер по окончании скрипта не выводит программист методами ob_get_contents() или ob_end_flush(). и не удаляет его (буфер) функцией ob_end_clean(), то он выводится в броузер.
Пользуйтесь конструкцией:
ob_start();
echo "1";
$output = ob_get_contents();
ob_end_clean();
echo $output;
и все будет у вас в порядке :)
Ответ отправил: boom (статус: 1-ый класс)
Отправлен: 18.04.2005, 10:38


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpplus
Отписаться

В избранное