最新消息:golangdoc.com这个域名可以干些啥,有想法的欢迎来聊哈

php获取命令行参数

PHP 256浏览 0评论

$argv获取

$argv 可以捕获命令行中php命令后的参数, 以空格分离
// 参考下面所示
var_dump($argv);
// 执行命令
//    $ php getopt.php www.01happy.com
// 输出
//    array(2) {
//        [0]=>
//      string(10) "getopt.php"
//        [1]=>
//      string(11) "www.01happy.com"
//    }

另外 $argc 可以获取到参数个数

// $argc 可以获取到参数个数
var_dump($argc);
// 执行命令
//    $ php getopt.php www.01happy.com
// 输出
//    int(2)

$argv和$argc都是php内的变量哈,有点像$_REQUEST,$_GET这样。

getopt获取

使用getopt参数可以获取命令行更加复杂的参数
如短参数:

php getopt.php -s www.01happy.com -y 2012

如长参数:

php getopt.php --site www.01happy.com --year 2012

getopt短参数获取方式


// 短参数示例
// 短参数就是一个字符的选项, 只允许 a-z、A-Z 和 0-9
$opt  = getopt('s:y:');
var_dump($opt);
// 执行命令
//    $ php getopt.php -s www.01happy.com -y 2012
// 输出
//    array(2) {
//        ["s"]=>
//      string(15) "www.01happy.com"
//        ["y"]=>
//      string(4) "2012"
//    }

getopt长参数获取方式

// 长参数示例
$opt  = getopt('', ['site:', 'year:']);
var_dump($opt);
// 执行命令
//    $ php getopt.php --site www.01happy.com --year 2012
// 输出
//    array(2) {
//        ["site"]=>
//      string(15) "www.01happy.com"
//        ["year"]=>
//      string(4) "2012"
//    }

getopt还有不少花样的获取方式,但是笔者不太建议,如果要定义命令行参数,最好是能统一获取方式,比较推荐的就是长参数获取方式,这样字段含义啥的都比较清晰

转载请注明:快乐编程 » php获取命令行参数

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址