您可以使用-q
命令行开关运行PHP。手册只说:
安静模式。禁止HTTP标头 输出(仅限CGI)。
这实际上意味着什么?
答案 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