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!
usa curl para publicar datos
curl --data "name = ii" "param1 = value1 & param2 = value2" http://test.com/sample.php