Я использую тот же php-скрипт для включения и для загрузки ajax . Это некоторые случайные элементы каталога, которые загружаются страницей и могут быть загружены с помощью ajax. Мне нужно использовать функцию header()
там, только если она загружается через ajax.
Когда я использую функцию заголовка, и выход уже запущен, я получаю предупреждение об этом php. Как php знает, что выход уже запущен? Каков наилучший способ определить это, а не для вызова функции заголовка?
Благодарю.
http://php.net/manual/en/function.headers-sent.php
// If no headers are sent, send one if (!headers_sent()) { header('...'); exit; }
Для этого есть простая встроенная функция:
if (!headers_sent()) { header('Your header here'); }
Не намного больше добавить 🙂
Одним из вариантов является вызов ob_start()
в начале, который буферизует весь ваш вывод . Таким образом вы можете отправлять заголовки в любое время.
headers_sent()
возвращает true
если вы не можете отправлять дополнительные заголовки.
Если вы отправили что-либо клиенту, выход был начат.
Например, даже один тег html, он уже выводится.
Вы можете структурировать ваше приложение, чтобы этого не произошло, или вы можете включить буферизацию вывода:
Просто удалите пустую строку перед запуском кода и добавьте exit; после окончания работы.