2011-04-25 24 views

Respuesta

16

Esto solo tiene que ver con el intérprete PHP construido en CGI SAPI. Esta versión envía unas cuantas cabeceras HTTP básica antes de cualquier salida real:

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

"(echo) What I actually wanted to have" 

Así que, básicamente, la bandera -q de comandos impide cualquier header() que se escriben en la salida estándar.

El propósito es utilizar el binario php-cgi en lugar de la variante CLP de php para los scripts de la consola. Por lo general se vea la siguiente tinglado en este tipo de secuencias de comandos para forzar php-cgi se comporte como la versión -cli:

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

Como se puede ver con -q php clave suprime a enviar cabeceras (añadido algunas nuevas líneas en la salida a pesar hazlo más legible):

[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 
Cuestiones relacionadas