Saltar al contenido

PHP, pasa parámetros desde la línea de comando a un script PHP

Poseemos la mejor respuesta que hallamos en línea. Nosotros deseamos que te sea útil y si quieres aportar algo que nos pueda ayudar a mejorar puedes hacerlo..

Solución:

Al llamar a un script PHP desde la línea de comandos, puede usar $argc para averiguar cuántos parámetros se pasan y $argv para acceder a ellos. Por ejemplo, ejecutar el siguiente script:


Me gusta esto:-

php script.php arg1 arg2 arg3

Dará la siguiente salida

int(4)
array(4) 
  [0]=>
  string(21) "d:Scriptsscript.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"

Consulte $argv y $argc para obtener más detalles.

Para hacer lo que quieras, digamos

php script.php arg1=4

Tendría que explotar el argumento en el signo igual: –

list($key, $val) = explode('=', $argv[1]);
var_dump(array($key=>$val));

De esa manera, puede tener lo que quiera frente al signo igual sin tener que analizarlo, solo verifique el key=>los pares de valores son correctos. Sin embargo, todo eso es un desperdicio, solo instruya al usuario sobre el orden correcto para pasar los argumentos.

Yo uso este método bastante conciso:

if($argc>1)
  parse_str(implode('&',array_slice($argv, 1)), $_GET);

Que manejaría una llamada como:

php script.php item1=4 item2=300

Al enviarlo a $_GET, maneja automáticamente el acceso web o CLI.

Para comentarios, esto está haciendo lo siguiente:

  • Si el recuento de argumentos es mayor que uno (ya que el primer elemento es el nombre del script), continúe
  • Toma los argumentos array excluyendo el primer artículo
  • Conviértalo en una consulta estándar string formato con ampersands
  • use parse_str para extraer a $_GET array

Si bien la respuesta es correcta y puede realizar el análisis a mano, PHP también ofrece la getopt() función que en realidad podría ser útil aquí.

También hay alternativas orientadas a objetos (escritas en PHP, disponibles en varias bibliotecas) que podrían resultar ser lo que necesita. Buscar en Google “php getopt” arrojará resultados útiles.

Te mostramos las comentarios y valoraciones de los lectores

Si eres capaz, puedes dejar una noticia acerca de qué le añadirías a este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *