Что значит запускать PHP в тихом режиме?
Вы можете запустить PHP с помощью командной строки -q
. В руководстве говорится:
Тихий режим. Запретить HTTP-заголовок вывода (только CGI).
Что это на самом деле означает на практике?
Ответы
Ответ 1
Это относится только к интерпретатору 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
Ответ 2
Как вы можете видеть с помощью клавиши -q
php подавляет подачу заголовков (добавляет некоторые новые строки на выходе, но делает их более читаемыми):
[email protected] ~ $ cat file.php
<?php
header('Location: http://stackoverflow.com');
echo 42;
[email protected] ~ $ php file.php
Status: 302 Moved Temporarily
X-Powered-By: PHP/5.2.17
Location: http://stackoverflow.com
Content-type: text/html
42
[email protected] ~ $ php -q file.php
42