在安静模式下运行PHP意味着什么?

时间:2011-04-25 11:17:17

标签: php

您可以使用-q命令行开关运行PHP。手册只说:

  

安静模式。禁止HTTP标头   输出(仅限CGI)。

这实际上意味着什么?

2 个答案:

答案 0 :(得分:16)

这只涉及针对CGI SAPI构建的PHP解释器。此版本在任何实际输出之前发送一些基本的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二进制代替控制台脚本的php CLI变体。通常你会在这样的脚本中看到以下shebang强制php-cgi的行为类似于-cli版本:

#!/usr/bin/php-cgi -qC

答案 1 :(得分:7)

正如您所看到的那样,使用-q密钥来禁止发送标头(在输出中添加了一些新行,以使其更具可读性):

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