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