2011-10-18 29 views
7

mi pregunta es probablemente fácil de responder. quiero ejecutar mi archivo PHP con los parámetros de concha y de paso a ella mediante el intérprete de ejemplopase los parámetros a php con shell

php test.php parameter1 parameter2 

hay una manera de hacer eso, excepto usando LLEGAR?

gracias

Respuesta

7

Sí, puede hacerlo así, pero debe hacer referencia a los argumentos de la matriz $_SERVER['argv']. $_SERVER['argc'] le dirá la cantidad de args recibidos, si desea utilizarlo como una primera capa de validación para asegurarse de que se ingresó un número requerido de args.

Para ilustrar esto, se ejecuta la siguiente secuencia de comandos como args.php arg1 arg2 arg3: salida

#!/usr/bin/php 
<?php 
var_dump($argv); 
?> 

voluntad:

array(4) { 
    [0]=> 
    string(8) "args.php" 
    [1]=> 
    string(4) "arg1" 
    [2]=> 
    string(4) "arg2" 
    [3]=> 
    string(4) "arg3" 
} 

Aquí está un ejemplo práctico:

En este ejemplo, vamos a crear un script (days.php) que genera el número de días desde una fecha determinada. Aceptará 3 parámetros, el mes, el día y el año como números.

#!/usr/bin/php 
<?php 
if($argc < 4 || !is_numeric($argv[1]) || !is_numeric($argv[2]) || !is_numeric($argv[3])) 
{ 
    echo "Usage: $argv[0] mm dd yyyy\n"; 
} 
else 
{ 
    $pastdate = mktime(0, 0, 0, $argv[1], $argv[2], $argv[3]); 
    $diff = time() - $pastdate; 
    $days = round($diff/60/60/24); 
    echo "$days days since $argv[1]/$argv[2]/$argv[3]\n"; 
} 
?> 

Shell llamada:

`$ ./days 11 17 1988` OR `php days.php 11 17 1988` 

Salida:

7699 days since 11/17/1988 

Espero que esto ayude.

+1

¡El enlace del tutorial "Acceso a PHP a través de SHELL" redirige a un sitio de spam! – Avi

4

Puede utilizar $argv para obtener los parámetros.

+0

Sí, así es como enciendo los procesos de php – Atticus

+0

la URL de '$ argv' está rota, ¿puedes arreglarla? –

+1

@PratikJaiswal Gracias por su aviso, lo arregló. – xdazz

Cuestiones relacionadas