Salvador, parte de este equipo, nos ha hecho el favor de crear esta crónica ya que conoce a la perfección dicho tema.
Solución:
Simplemente inserte las siguientes líneas al comienzo de su script:
/* If started from the command line, wrap parameters to $_POST and $_GET */
if (!isset($_SERVER["HTTP_HOST"]))
parse_str($argv[1], $_GET);
parse_str($argv[1], $_POST);
Este pequeño fragmento de código funciona (puedes decidir si quieres usar $_GET o $_POST o, como lo necesitaba yo, ambos).
Después de cambiar su script, puede llamarlo desde la línea de comando pasando sus argumentos:
php yourscript.php 'arg1=x&arg2=y'
Eso no es fácil de hacer. Puedes invocar el php-cgi
binario y canalice una solicitud POST falsa. Pero deberá configurar una gran cantidad de variables de entorno CGI:
echo 'var1=123&var2=abc' | REQUEST_METHOD=POST SCRIPT_FILENAME=script.php REDIRECT_STATUS=CGI CONTENT_TYPE=application/www-form-urlencoded php-cgi
Nota: Insuficiente, no funciona así. Pero algo así…
Sin duda, es más fácil si solo parchea el script y deja que cargue el $_POST array de una variable de entorno predefinida.
$_POST = parse_url($_SERVER["_POST"]);
Entonces puedes invocarlo como _POST=var=123 php script.php
por simplicidad.
curl --data "name=ii" "param1=value1¶m2=value2" http://test.com/sample.php
Puntuaciones y reseñas
Si aceptas, tienes la libertad de dejar una reseña acerca de qué te ha impresionado de esta división.