Что значит запускать PHP в тихом режиме? - PullRequest
10 голосов
/ 25 апреля 2011

Вы можете запустить PHP с ключом командной строки -q. В инструкции только сказано:

Тихий режим. Подавить заголовок HTTP выход (только CGI).

Что это означает на практике?

Ответы [ 2 ]

16 голосов
/ 25 апреля 2011

Это касается только интерпретатора 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() в стандартный вывод.

Цельиспользовать бинарный файл php-cgi вместо CLI-варианта php для консольных сценариев.Обычно в таких скриптах вы видите следующий шебанг, заставляющий php-cgi вести себя как версия -cli:

#!/usr/bin/php-cgi -qC
7 голосов
/ 25 апреля 2011

Как вы можете видеть с помощью клавиши -q, 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...