|
|
|
| В одной из книг меня сбило с толку выражение "... затем PHP выводит содержимое в поток вывода,тоесть в браузер"
Хотелось бы уточнить, поток вывода это ведь вывод чего-то на в какуе-то программу сразу после выполнения, например в bash результат операции всех утилит выходит в тоже окно где были они запущены.
А в php после echo строки ну или что там, не залетают ведь прямиком в браузер, а сначало формируется html страница, куда вствляется все echo.А уже потом браузер читает то, что вывело echo.Так ведь.? | |
|
|
|
|
автор: ..... (07.03.2012 в 20:17) |
|
|
для: demonow
(07.03.2012 в 18:32)
| | грубо говоря в sdtout
процесс сервера (в зависимости от того как запускается интерпритатор) может в свою очередь заполнять буфер из этого захваченного stdout и посылать например по 4кБайт а может просто сам быть хозяином этого потока и так-же буферизовать
можно управлять потоком вывода
flush — Сброс буфера вывода
ob_clean — Очищает (стирает) буфер вывода
ob_end_clean — Очищает (стирает) буфер вывода и отключает буферизацию вывода
ob_end_flush — Сброс (отправка) буфера вывода и отключение буферизации вывода
ob_flush — Сброс (отправка) буфера вывода
ob_get_clean — Получить содержимое буфера и очистить его
ob_get_contents — Возвращает содержимое буфера вывода
ob_get_flush — Сброс буфера вывода, возвращая его содержимое и отключение буферизации вывода
ob_get_length — Возвращает размер буфера вывода
ob_get_level — Возвращает уровень вложенности механизма буферизации вывода
ob_get_status — Получить статус буфера вывода
ob_gzhandler — callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start
ob_implicit_flush — Функция включает/выключает неявный сброс
ob_list_handlers — Список всех используемых обработчиков вывода
ob_start — Включение буферизации вывода
output_add_rewrite_var — Добавить обработчик значений URL
output_reset_rewrite_vars — Сброс значений установленных обработчиком URL
|
| |
|
|
|
|
автор: ..... (07.03.2012 в 20:21) |
|
|
для: demonow
(07.03.2012 в 18:32)
| | >ток вывода это ведь вывод чего-то на в какуе-то программу сразу после выполнения
чтобы перенаправить вывод в другую консольную программу обычно в коммандной строке выполняется что-то вроде
вместо dir например может быть php --help | |
|
|
|
|
автор: ..... (07.03.2012 в 20:34) |
|
|
для: .....
(07.03.2012 в 20:21)
| | полезнее команда
| |
|
|
|
|
|
|
|
для: demonow
(07.03.2012 в 18:32)
| | >А в php после echo строки ну или что там, не залетают ведь прямиком в браузер, а сначало
>формируется html страница, куда вствляется все echo.А уже потом браузер читает то, что вывело
>echo.Так ведь.?
Не совсем, читает сначала Apache, а уж он отправляет данные браузеру. Так вот Apache и PHP "общаются" через стандартный поток вывода и переменные окружения. Если Apache есть что сказать PHP-скрипту, он заполняет переменные окружения, если PHP-скрипту есть что сказать Apache - он пишет данные в стандартный поток. Приведенная выше фраза, просто укорочена, в ней пропущена подробная цепочка. Автор как бы говорит: ну вы понимаете, что PHP на сервере, а браузер за тысячи километров у клиента, но не писать же мне всю эту цепочку, тем более речь сейчас немного о другом. Для PHP-программы формирование страницы выглядит так, как если bash-срипт просто выводил бы данные в консоль, но благодаря Apache и сетевой инфраструктуре выглядит это так, как если бы он это выводил в браузер клиента. | |
|
|
|
|
|
|
|
для: cheops
(08.03.2012 в 13:46)
| | Все понял спасибо, просто уточнял.
----если PHP-скрипту есть что сказать Apache - он пишет данные в стандартный поток. >>
Тоесть через операторы echo и подобные вставляет текст и другую инф в html страницу и потом передает пользователю?
--Вообще я так понял поток вывода касается всего что выводит программа на устройство чтения.. | |
|
|
|
|
|
|
|
для: demonow
(08.03.2012 в 17:07)
| | >Тоесть через операторы echo и подобные вставляет текст и другую инф в html страницу и потом
>передает пользователю?
>--Вообще я так понял поток вывода касается всего что выводит программа на устройство чтения..
Да, совершенно верно, echo, print, fpassthru и ряд других, все они пишут в стандартный поток, его подхватывает Apache и переправляет пользователю в ответ на запрос PHP-скрипта. Если PHP-скрипт выводит HTML-страницу пойдет HTML-страницу, если он выводит содержимое JPG-файла, пойдет JPG-файл. | |
|
|
|
|
|
|
|
для: cheops
(08.03.2012 в 20:59)
| | Спасибо | |
|
|
|