the_permalink the tag permalink mostrar get_the_tag_list all post command-line-interface php http-post-vars

post - tag - the_permalink>()



¿Cómo pasar parámetros desde la línea de comandos a $_POST en php-script? (3)

Eso no es factible. Puede invocar el binario de php-cgi y realizar una solicitud de POST falsa. Pero deberá configurar una gran cantidad de variables de entorno de 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í ...

Ciertamente es más fácil si solo aplica un parche al script y deja que cargue el array $ _POST a partir de una variable de entorno predefinida.

$_POST = parse_url($_SERVER["_POST"]);

Entonces puede invocarlo como _POST=var=123 php script.php por simplicidad.

Sé que esto puede sonar un poco raro, pero necesito pasar algunos parámetros a una matriz $ _POST. Similar a la forma en que lo hace apache, o cualquier otro servidor web.

Desafortunadamente no pude encontrar libapache2-mod-php5 ninguna parte para mi Ubuntu.


Estaba buscando una solución para esto y vine, porque fue el primer éxito en Google. El segundo fue de alguna manera más útil para mí, porque tiene una solución realmente fácil, si tiene acceso al script PHP y puede cambiarlo.

Simplemente inserte las siguientes líneas al comienzo de su script:

/* if started from commandline, wrap parameters to $_POST and $_GET */ if (!isset($_SERVER["HTTP_HOST"])) { parse_str($argv[1], $_GET); parse_str($argv[1], $_POST); }

Este pequeño código hace el truco (usted puede decidir si quiere usar $ _GET o $ _POST o, como yo lo necesitaba, 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''

¡Que te diviertas!