2012-05-24 14 views
21

¿Es posible pasar una variable $ _SERVER a un script PHP a través de la línea de comando?

Específicamente, estoy tratando de configurar $ _SERVER ['recipient'] de forma manual para que pueda probar las tuberías de correo electrónico sin configurar un servidor de correo.

+0

no es una pregunta muy clara, pero tal vez quieras: php script.php command_line_arguments_go_here –

Respuesta

-5

¿Qué hay de la creación de una página ficticia denominada dummy.php con el siguiente contenido:

<?php 
    $_SERVER['recipient'] = '[email protected]'; 
?> 
31

En * nix:

$ recipient="[email protected]" php script.php 

<?php 

print_r($_SERVER); 

prueba:

$ recipient="[email protected]" php script.php | grep recipient 

[recipient] => [email protected] 

O bien, puede Exportación o setenv (según su sistema operativo), como

$ export recipient="[email protected]" 
$ setenv recipient="[email protected]" 
+0

Ten en cuenta que esto también es útil para establecer variables incorporadas, como $ _SERVER ['HOST_NAME']. ¡Funciona de maravilla! –

+1

¿Hay alguna razón por la que esto no funcione para DOCUMENT_ROOT? ¿Hay alguna manera de evitar eso? – eisaacson

+0

¿Hay una alternativa de Windows aquí? – EyasSH

0

La respuesta de @sberry es correcta.

... sino porque he llegado a esta página buscando establecer valores por defecto para la matriz$_SERVER, cuando se ejecuta PHP desde la línea de comandos, aquí es mi propia respuesta. Espero que pueda ayudar a alguien.

empty($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] = 'localhost'; 
empty($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] = '/'; 
empty($_SERVER['DOCUMENT_ROOT']) && $_SERVER['DOCUMENT_ROOT'] = __DIR__; 
print_r($_SERVER); 
0

Yo personalmente uso lo siguiente.

Ejemplo: establecer $ _SERVER ['recipient] en mi línea de comandos de PHP.

Con OS X

con Ubuntu GNU/Linux

Cuestiones relacionadas