PHP使用命令行传递 GET/POST 参数 作者: Chuwen 时间: 2017-07-24 分类: PHP,其他分类 ## 话不多说,先贴代码,代码放到需要传入GET或POST参数的最上面! ``` php ='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] ### 1.如果你要传递 `GET` 参数,那么就这样 ``` shell php argv.php -G "qq=1361289290&pwd=woaini" ``` ![20170724205250.png][2] ## -----我是分割线----- ### 2.如果你要传递 `POST` 参数,那么就这样 ``` shell php argv.php -P "qq=1361289290&pwd=woaini" ``` ![20170724205608.png][3] ## -----我又是分割线----- ### 3.如果你既传递 `GET` 和 `POST` 参数,那么就这样 ``` shell php argv.php -G "qq=1361289290&pwd=woaini" -P "qq=1361289290&pwd=woaini" ``` ![20170724205845.png][4] ## 总结 > ### 使用方法可以归纳为 > ## 只传入GET参数 >> ### `php -G ""` >> #### eg: `php test.php -G "qq=1361289290&pwd=woaini"` > ## 只传入POST参数 >> ### `php -P ""` >> #### eg: `php test.php -P "qq=1361289290&pwd=woaini"` > ## 即传入GET又传入POST >> ### `php -G "" -P ""` >> #### eg: `php test.php -G "qq=1361289290&pwd=woaini" -P "qq=1361289290&pwd=woaini"` ### 上述所传入的参数,都可以使用对应的全局变量 `$_GET` 或 `$_POST` 得到 ## 最后,贴出刚刚Demo用的代码: ``` php ='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); ``` [1]: https://cdn.nowtime.cc/2017/07/24/3913078308.png [2]: https://cdn.nowtime.cc/2017/07/24/2700627811.png [3]: https://cdn.nowtime.cc/2017/07/24/3767886938.png [4]: https://cdn.nowtime.cc/2017/07/24/2344941840.png 标签: PHP