如何将参数从命令行传递到php-script中的$ _POST?

| 我知道这听起来有些奇怪,但是我需要将一些参数传递给$ _POST数组。类似于apache或任何其他Web服务器的方式。 不幸的是,在我的Ubuntu的任何地方都找不到“ 0”。     
已邀请:
这不容易做到。您可以调用
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 
注意:不足,不能那样工作。但是那样的话 如果仅修补脚本,然后让脚本从预定义的环境变量加载$ _POST数组,肯定会更容易。
$_POST = parse_url($_SERVER[\"_POST\"]);
然后,为简单起见,您可以像
_POST=var=123 php script.php
一样调用它。     
我一直在寻找解决方案,因为它是Google的第一招。第二个对我来说还是有用的,因为如果您可以访问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);
}
这小段代码可以解决问题(您可以决定是要使用$ _GET还是$ _POST,或者像我需要的那样使用这两者。 更改脚本后,您可以在命令行中通过传递args来调用它:
php yourscript.php \'arg1=x&arg2=y\'
玩得开心!     
curl --data \"name=ii\" \"param1=value1&param2=value2\" http://test.com/sample.php
    

要回复问题请先登录注册