【发布时间】:2011-04-25 19:26:52
【问题描述】:
您可以使用-q 命令行开关运行 PHP。手册只说:
安静模式。抑制 HTTP 标头 输出(仅限 CGI)。
这实际上意味着什么?
【问题讨论】:
标签: php
您可以使用-q 命令行开关运行 PHP。手册只说:
安静模式。抑制 HTTP 标头 输出(仅限 CGI)。
这实际上意味着什么?
【问题讨论】:
标签: php
这只涉及针对 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 变体。通常你会在这样的脚本中看到以下 shebang 来强制 php-cgi 表现得像 -cli 版本:
#!/usr/bin/php-cgi -qC
【讨论】:
正如您所看到的-q key 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
【讨论】: