had*_*des 30 php post command-line-interface http-post-vars
我知道这听起来有点奇怪,但我需要将一些参数传递给$ _POST数组.类似于apache的方式,或任何其他Web服务器.
不幸的是我找不到libapache2-mod-php5我的Ubuntu.
Sch*_*ngi 47
我一直在寻找解决方案,因为这是谷歌的第一次打击.第二个对我有用,因为它有一个非常简单的解决方案,如果你有权访问PHP脚本并且可以更改它.
只需在脚本的开头插入以下行:
/* 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);
}
Run Code Online (Sandbox Code Playgroud)
这一小段代码可以解决问题(您可以决定是否要使用$ _GET或$ _POST,或者像我需要的那样,两者.
更改脚本后,您可以从命令行调用它来传递您的args:
php yourscript.php 'arg1=x&arg2=y'
Run Code Online (Sandbox Code Playgroud)
玩得开心!
mar*_*rio 18
这不容易做到.您可以调用php-cgi二进制文件并输入假的POST请求.但是您需要设置大量的CGI环境变量:
echo 'var1=123&var2=abc' | REQUEST_METHOD=POST SCRIPT_FILENAME=script.php REDIRECT_STATUS=CGI CONTENT_TYPE=application/www-form-urlencoded php-cgi
Run Code Online (Sandbox Code Playgroud)
注意:不够,不能那样工作.但是那样的......
如果你只修补脚本,并且让它从预定义的环境变量中加载$ _POST数组,那肯定会更容易.
$_POST = parse_url($_SERVER["_POST"]);
Run Code Online (Sandbox Code Playgroud)
然后你可以像_POST=var=123 php script.php简单一样调用它.
| 归档时间: |
|
| 查看次数: |
34370 次 |
| 最近记录: |