PHP使用命令行传递 GET/POST 参数

话不多说,先贴代码,代码放到需要传入GET或POST参数的最上面!

<?php
if(isset($argv) && count($argv)>='2'){
  $_G=array_search('-G',$argv);
  $_P=array_search('-P',$argv);
  if(isset($_G) && isset($_P)){
    //同时传入了GET和POST参数
    parse_str($argv[$_G+1],$G_parr);
    parse_str($argv[$_P+1],$P_parr);
    $_GET=$G_parr;
    $_POST=$P_parr;
  }elseif(isset($_G) && !isset($_P)){
    //只传入了GET参数
    parse_str($argv[$_G+1],$G_parr);
    $_GET=$G_parr;
  }elseif(!isset($_G) && isset($_P)){
    //只传入了POST参数
    parse_str($argv[$_P+1],$P_parr);
    $_POST=$P_parr;
  }
}

如何使用?

首先,我们先创建一个 argv.php 文件以供本次Demo用

该文件内容是:

20170724204959.png

1.如果你要传递 GET 参数,那么就这样

php argv.php -G "qq=1361289290&pwd=woaini"

20170724205250.png

-----我是分割线-----

2.如果你要传递 POST 参数,那么就这样

php argv.php -P "qq=1361289290&pwd=woaini"

20170724205608.png

-----我又是分割线-----

3.如果你既传递 GETPOST 参数,那么就这样

php argv.php -G "qq=1361289290&pwd=woaini" -P "qq=1361289290&pwd=woaini"

20170724205845.png

总结

使用方法可以归纳为

只传入GET参数

php <file path> -G "<data>"

eg: php test.php -G "qq=1361289290&pwd=woaini"

只传入POST参数

php <file path> -P "<data>"

eg: php test.php -P "qq=1361289290&pwd=woaini"

即传入GET又传入POST

php <file path> -G "<data>" -P "<data>"

eg: php test.php -G "qq=1361289290&pwd=woaini" -P "qq=1361289290&pwd=woaini"

上述所传入的参数,都可以使用对应的全局变量 $_GET$_POST 得到

最后,贴出刚刚Demo用的代码:

<?php
if(isset($argv) && count($argv)>='2'){
  $_G=array_search('-G',$argv);
  $_P=array_search('-P',$argv);
  parse_str($argv[$_G+1],$G_parr);
  parse_str($argv[$_P+1],$P_parr);
  if($_G && $_P){
    //同时传入了GET和POST参数
    $_GET=$G_parr;
    $_POST=$P_parr;
  }elseif($_G){
    //只传入了GET参数
    $_GET=$G_parr;
  }elseif($_P){
    //只传入了POST参数
    $_POST=$P_parr;
  }
}

echo "\nGET参数\n";
print_r($_GET);

echo "\n\n";

echo "POST参数\n";
print_r($_POST);

如无特别声明,该文章均为 现在网NowTime.cc)原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。


标签: PHP

赞 (0)

添加新评论