2014-05-19 3 views
0

Обратите внимание, что это не дубликат. На кажущиеся дубликаты можно ответить «Just save without BOM уже!». Но почему мой вопрос?Почему BOM вызывают предупреждение «заголовки уже отправлены»?

Если я сохранить PHP файл неосторожно с BOM, и я пытаюсь отправить заголовок внутри PHP, я получаю

Предупреждение: Не удается изменить информацию в заголовке - заголовки уже прислал (выход началась в file.php: 1) в file.php на линии

Вы знаете процедуру. И, конечно, этого не происходит, когда файл сохраняется без спецификации.

Однако, вот сложная часть: это предупреждение не встречается повсюду! В моем случае это не происходит, когда я открываю файл с http://localhost/, но это происходит, когда я загружаю файл на свой сайт и открываю его оттуда.

Итак, какая разница? Есть ли ошибка либо моего локального Apache, либо Apache на сайте? Будет ли проблема решена путем обновления багги до последней версии? Или это может быть проблема конфигурации, которая может быть решена путем редактирования INI-файла?

+0

Поскольку спецификация выводится, поэтому она вызывает отправку заголовков. Разница, возможно, заключается в различии конфигурации с ошибкой. – Maerlyn

ответ

0

Возможно, вероятно, что у вашего местного хоста включен implicit output buffering.

Также detect_unicode может быть стоит проверить.

+0

Спасибо за ваш ответ. У моего php.ini действительно было 'output_buffering = 4096', и я изменил его на' Off' и перезапустил Apache, но это не изменило ситуацию. Также не изменились изменения delect_unicode и 'zend.multibyte'. Так что я не стал дальше. –

Смежные вопросы