Вы можете запустить PHP с помощью командной строки -q
. В руководстве говорится:
Тихий режим. Запретить вывод заголовка HTTP (только CGI).
Что это на самом деле означает на практике?
Это касается только PHP-интерпретатора, созданного против CGI SAPI. Эта версия отправляет несколько базовых HTTP-заголовков перед любым фактическим выходом:
X-Powered-By: PHP/5.3.3-1ubuntu9.3 Content-type: text/html "(echo) What I actually wanted to have"
Таким образом, в основном флаг -q
командной строки предотвращает запись header()
в stdout.
Целью является использование двоичного файла php-cgi вместо варианта CLI php для консольных скриптов. Обычно вы видите следующие скрипты в таких скриптах, чтобы заставить php-cgi вести себя как -cli-версия:
#!/usr/bin/php-cgi -qC
Как вы можете видеть, с -q
key php подавляет подачу заголовков (добавлено несколько новых строк на выходе, но чтобы сделать их более читаемыми):
zerkms@l12 ~ $ cat file.php <?php header('Location: http://stackoverflow.com'); echo 42; zerkms@l12 ~ $ php file.php Status: 302 Moved Temporarily X-Powered-By: PHP/5.2.17 Location: http://stackoverflow.com Content-type: text/html 42 zerkms@l12 ~ $ php -q file.php 42