Почему спецификация вызывает предупреждение "заголовки уже отправлены"?
Обратите внимание, что это не дубликат. На кажущиеся дубликаты можно ответить "Просто сохраните без спецификации!" Мой вопрос, однако, почему?
Если я непреднамеренно сохраняю файл PHP с помощью спецификации и пытаюсь отправить заголовок изнутри PHP, я получаю
Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод начался с file.php:1) в file.php в строке 1
Вы знаете рутину. И, конечно, это не происходит, когда файл сохраняется без спецификации.
Впрочем, и тут есть хитрость: это предупреждение встречается не везде! В моем случае это не происходит, когда я открываю файл из http://localhost/
, но это происходит, когда я загружаю файл на свой веб-сайт и открываю его оттуда.
Так в чем же разница? Есть ли ошибка в моем локальном Apache или Apache на сайте? Будет ли проблема решена путем обновления глючного до последней версии? Или это может быть где-то проблема конфигурации, которая может быть решена путем редактирования INI-файла?
1 ответ
Скорее всего, на вашем локальном хосте включена неявная буферизация вывода.
Кроме того, detect_unicode может стоить проверить.