|
|
|
| Добрый день! Скажите пожалуйста, корректен и надежен ли такой подход:
1. В начале скрипта активируем "скаладывание" вывода в буфер с помощью ob_start();
2. Затем в теле скрипта генерируется весь вывод.
3. В конце скрипта не используем функции ob_end_flush(), ob_flush() и т.д.
Всегда ли при таком подходе информация из буфера будет уходить клиенту по завершении работы скрипта?
Или необходимо явно отправлять и очищать буфер в конце скрипта для надежной работы?
P.S. этот вопрос волнует меня не потому, что мне лень в конце дописывать ob_end_flush(), а потому что я разработал часть CMS на своей локальной машине, где все работает замечательно, и сейчас спохватился, что мне нужно будет потом это дело выкладывать на сервер провайдера, какого именно - пока неизвестно, возможно что там в php.ini буферизация будет отключена. Поскольку в скриптах достаточно много проверок, которые завершаются выходом в случаи ошибки, находить каждую конструкцию exit() и вставлять перед ней ob_end_flush() не хочется, можно пропустить что-либо. Да и времени на это много уйдет.
Поэтому я и задался этим вопросом. | |
|
|
|
|
|
|
|
для: alexey_tihonenko
(08.02.2010 в 13:53)
| | ob_start может быть вообще инициировано конфигом, а скрипт - и не знать о том, что его вывод буферизируют.
И тем не менее всё работает. | |
|
|
|
|
|
|
|
для: Trianon
(08.02.2010 в 14:01)
| | >ob_start может быть вообще инициировано конфигом
Это хорошая идея. Спасибо!
Меня интересует ничего ли нет страшного в том, что в конце скрипта будет отсутствовать явная отправка и очистка буфера функциями php. Всегда ли при этом интерпретатор сам позаботится о том, чтобы отправить содержимое буфера в конце работы скрипта и очистить буфер?
Так то вроде после добавки в конфиг строчки ob_start() и выключении output_buffering все нормально работает. Но вдруг где-то подводный камень есть) | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(08.02.2010 в 14:25)
| | А что гадать? Глянь в мануал. | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(08.02.2010 в 14:25)
| | Интерпретатор сам обо всем позабоится. | |
|
|
|
|
|
|
|
для: cheops
(09.02.2010 в 11:31)
| | Спасибо! | |
|
|
|