Можно ли иметь ob_start()
в начале всех страниц PHP?
Если я этого не сделаю, я получаю сообщение об ошибке «заголовки уже отправлены».
Можно ли иметь ob_start()
в начале всех страниц PHP?
Если я этого не сделаю, я получаю сообщение об ошибке «заголовки уже отправлены».
Это «хорошо», но вам действительно следует исправить свой скрипт, чтобы он не выводил данные преждевременно и сохранял вывод на конец. Но вы можете просто изменить настройку в .htaccess
или php.ini
, как показано ниже для .htaccess:
php_value output_buffering On
php_value output_handler mb_output_handler
На мой взгляд, это было бы предпочтительнее, чем добавлять ob_start
в начало всех ваших скриптов.
Тем не менее, вы действительно должны решить проблему в ее основе. IE: сохранить вывод для конца скрипта.
у вас может быть пробел в верхней части страницы
Это приведет к ошибке "ЗАГОЛОВОК УЖЕ ОТПРАВЛЕН"
Понятия не имею о ob_start()
Я бы сказал, что это можно сделать в качестве обходного пути или просто быстро заставить ваш существующий скрипт работать. Однако в долгосрочной перспективе вам следует подумать о перепроектировании вашего приложения, чтобы подобных вещей не происходило. В общем, вы должны попытаться полностью разделить логику приложения и вывод.
open_end_clean
этоob_end_flush
но вы должны искать, откуда взялся заголовок - person ajreal   schedule 12.11.2010ob_end_clean
, а неopen_end_clean
. :) - person Matt Huggins   schedule 12.11.2010