Предупреждение: Невозможно изменить информацию заголовка — заголовки уже отправлены by (вывод начался с example.php: 1)
Похоже, что этих вопросов неограниченное количество, и они продолжают поступать. Я согласен, что в большинстве случаев ответ является там уже.
Я столкнулся с той же проблемой сам. В выводе был загадочный персонаж, который мешал мне устанавливать заголовки. Поскольку это было большое приложение, в котором было много файлов, поиск каждого из них не был возможен.
Я считаю, что проблема связана с спецификацией или дополнительным пространством до <?php
открывающий тег где-то в одном из включенных файлов. Когда я открываю файл, указанный в сообщении об ошибке, похоже, что в этом нет ничего плохого.
Как мне найти, где проблема?
Вот автоматизированное решение, которое помогло мне отследить этого персонажа. Требуется доступ по SSH.
grep -v -R "^<?php" /home/public_html/ --include \*.php | grep "<?php"
grep
это очень полезный инструмент, который может рекурсивно искать содержимое файлов и папок.
-v
средства исключать, т.е. вывести противоположное тому, что соответствует регулярному выражению, которое я передам позже-R
означает рекурсивно, то есть поиск внутри предоставленной папки и внутри ее подкаталогов"^<?php"
это выражение, которое соответствует строкам, которые начинаются (^
) точно с открывающим тегом PHP. Снова, -v
используется, чтобы инвертировать это, так что я получаю строки, которые не — то, что я после./home/public_html/
это папка со всеми файлами моего сайта--include \*.php
мы ищем только внутри .php файловgrep "<?php"
это трюк, который захватывает только первые строки файлаДело в том, что -v
flag инвертирует результаты поиска и выводит то, что не соответствует выражению. Таким образом, если файл имеет 1000 строк, из которых только первая <?php
открывающий тег, который выведет все 999, потому что они не соответствуют регулярному выражению. Поскольку мне нужно взглянуть только на первую строку, я перенаправляю вывод greps в другой grep, который фильтрует результаты еще раз и гарантирует, что я получаю строки с другим условием, которое я прохожу, — опять же, открывающий тег. Это обходной путь, который ограничивает вывод greps только первой строкой.
Надеюсь это поможет
Других решений пока нет …