话不多说,先贴代码,代码放到需要传入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用
该文件内容是:

1.如果你要传递 GET
参数,那么就这样
php argv.php -G "qq=1361289290&pwd=woaini"

——-我是分割线——-
2.如果你要传递 POST
参数,那么就这样
php argv.php -P "qq=1361289290&pwd=woaini"

——-我又是分割线——-
3.如果你既传递 GET
和 POST
参数,那么就这样
php argv.php -G "qq=1361289290&pwd=woaini" -P "qq=1361289290&pwd=woaini"

总结
使用方法可以归纳为
只传入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);