PHP: как узнать, начался ли запуск?

Я использую тот же 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, он уже выводится.

Вы можете структурировать ваше приложение, чтобы этого не произошло, или вы можете включить буферизацию вывода:

http://php.net/manual/en/function.ob-start.php

Просто удалите пустую строку перед запуском кода и добавьте exit; после окончания работы.