2011-04-25 53 views

回答

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()被写入到标准输出。

目的是使用php-cgi二进制代替控制台脚本的php CLI变体。通常你看到下面的这些脚本给力的PHP,CGI认领的行为像-cli版本:

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

正如你可以-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