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

Kit*_*nde 11 php

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

静音模式.抑制HTTP标头输出(仅限CGI).

这实际上意味着什么呢?

mar*_*rio 17

这仅涉及针对CGI SAPI构建的PHP解释器.此版本在任何实际输出之前发送一些基本的HTTP标头:

X-Powered-By: PHP/5.3.3-1ubuntu9.3
Content-type: text/html

"(echo) What I actually wanted to have"
Run Code Online (Sandbox Code Playgroud)

所以基本上-q命令行标志会阻止任何header()写入stdout.

目的是使用php-cgi二进制代替控制台脚本的php CLI变体.通常你会在这样的脚本中看到以下shebang强制php-cgi的行为类似于-cli版本:

#!/usr/bin/php-cgi -qC
Run Code Online (Sandbox Code Playgroud)


zer*_*kms 7

正如你所看到的那样,使用-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
Run Code Online (Sandbox Code Playgroud)