Discussion:
Pasar y recoger variables desde un php de consola
(demasiado antiguo para responder)
SoLRaC
2005-08-02 08:50:24 UTC
Permalink
¿alquien podria indicarme como se hace, o un enlace a la documentacion
sobre este tema?

he probado con script.php?variable=valor
Pero no me funciona.
countach
2005-08-02 08:51:55 UTC
Permalink
Post by SoLRaC
¿alquien podria indicarme como se hace, o un enlace a la documentacion
sobre este tema?
he probado con script.php?variable=valor
Pero no me funciona.
... y en script.php tendrá el $_GET['variable'] == valor
SoLRaC
2005-08-02 09:24:03 UTC
Permalink
Esto es lo que me devuelve la consola al ejecutarlo con y sin
parametros.
---------------------------------------
[***@aqui-113 sincronizacion]$ /usr/local/bin/php debug.php
Content-type: text/html
X-Powered-By: PHP/5.0.4

postArray
(
)
getArray
(
)
------------------- aqui con parametros -------------------
[***@aqui-113 sincronizacion]$ /usr/local/bin/php
debug.php?variable=valor
Status: 404
Content-type: text/html
X-Powered-By: PHP/5.0.4

No input file specified.
------------------------------------------------------------

El codigo del script es este

<? echo "post";
print_r($_POST);
echo "get";
print_r($_GET);?>
countach
2005-08-02 09:32:48 UTC
Permalink
Post by SoLRaC
Esto es lo que me devuelve la consola al ejecutarlo con y sin
parametros.
---------------------------------------
Content-type: text/html
X-Powered-By: PHP/5.0.4
postArray
(
)
getArray
(
)
------------------- aqui con parametros -------------------
debug.php?variable=valor
Status: 404
Content-type: text/html
X-Powered-By: PHP/5.0.4
No input file specified.
------------------------------------------------------------
El codigo del script es este
<? echo "post";
print_r($_POST);
echo "get";
print_r($_GET);?>
Ah, claro, por línea de comandos, la interrogación no se comprende, por eso
te devuelve un 404, no encontrado, al pensarse que forma parte del archivo.

Como dices en la otra respuesta, con un espacio parece que si.
countach
2005-08-02 09:33:45 UTC
Permalink
Post by countach
Ah, claro, por línea de comandos, la interrogación no se comprende,
por eso te devuelve un 404, no encontrado, al pensarse que forma
parte del archivo.
Como dices en la otra respuesta, con un espacio parece que si.
Añado: La solución que te propone Oscar García es más elegante y apropiada.
Oscar Garcia
2005-08-02 09:15:18 UTC
Permalink
Post by SoLRaC
¿alquien podria indicarme como se hace, o un enlace a la documentacion
sobre este tema?
he probado con script.php?variable=valor
Pero no me funciona.
El propio manual de PHP te explica cómo se hace:
http://es.php.net/features.commandline

Los parámetros que se pasan a un script PHP por línea de comandos (o
consola) llegan al script en las variables $argv y $argc o
$_SERVER['argc'] y $_SERVER['argv'].

El uso sería:

***@xoomstar:/home/invitados/redstar$ ./prueba.php parámetro1 \
"parámetro 2" "parámetro 3 con muchos espacios" parámetro 4

Fíjate que los últimos dos parámetros irían por separado "parámetro"
por un sitio y "4" por otro.

Espero que sea esto lo que esperabas.

Un saludo.
--
Óscar Javier García Baudet
LinaresDigital
http://redstar.linaresdigital.com/
SoLRaC
2005-08-02 09:26:39 UTC
Permalink
Pues al final he conseguido ejecutarlo, cambiando la ? de pasar por un
espacio, es decir, con el mismo script que he puesto contestando otro
mensaje

[***@aqui-113 sincronizacion]$ /usr/local/bin/php debug.php
variable=valor
Content-type: text/html
X-Powered-By: PHP/5.0.4

postArray
(
)
getArray
(
[variable] => valor
)
Oscar Garcia
2005-08-02 09:34:26 UTC
Permalink
Post by SoLRaC
Pues al final he conseguido ejecutarlo, cambiando la ? de pasar por un
espacio, es decir, con el mismo script que he puesto contestando otro
mensaje
variable=valor
Content-type: text/html
X-Powered-By: PHP/5.0.4
postArray
(
)
getArray
(
[variable] => valor
)
Está bien (o mal) dependiendo de cómo se mire. Desde el punto de vista
de la programación de aplicaciones orientadas a línea de comandos la
forma que tienes de hacerlo es incorrecta.

Por cierto, debes preceder tu script en PHP con:

#!/usr/local/bin/php -e

Y no necesitarás llamar constantemente al intérprete cada vez que
desees ejecutar el programa. No olvides igualmente darle permisos de
ejecución con "chmod u+x programa.php".

Mira esta otra pruebecilla que he hecho para ilustrarte:

***@servidor:~# ./pr.php hola a todos "de nuevo :)"
Array
(
[0] => ./pr.php
[1] => hola
[2] => a
[3] => todos
[4] => de nuevo :)
)

Fíjate como ya no salen las cabeceras. El código es:

#!/usr/bin/php -e
<?php
print_r($_SERVER['argv']);
?>

En mi caso haciendo un "whereis php" me sale esa ruta, en tu caso la
ruta es distinta.

Espero que te sea de utilidad.

Un saludo.
--
Óscar Javier García Baudet
LinaresDigital
http://redstar.linaresdigital.com/
SoLRaC
2005-08-02 09:45:18 UTC
Permalink
Si si, si util me es, pero asi tengo el problema de que tengo que
recoger las variables por orden, aunque bueno, siempre puedo introducir
que las impares sean el nombre de variables y las pares los valores.

Voy a probar de esta manera, y a ver si consigo hacerlo funcionar con
mysql

Loading...