狂欢‰一夜 发表于 2015-8-29 07:58:29

php getopt 小结

  php中的getop是用于接收cmd参数的时候用的
例如当你再linxu 中 需要用php调试的时候,往往需要带参数调试
getopt就是可以实现带参数传入的命令



使用方式:


    array getopt ( string $options [, array $longopts ] )
注意:
  $options字符串中的每个字符将被用来作为选项字符和对传递给脚本用一个连字符开始匹配选项( - )。例如,一个选项字符“x”对应一个选项-x。只有a - z,A - Z和0-9是允许的
  空格是不能作为选项字符的。

note: 包含当运行于命令行下时传递给当前脚本的参数的数组。
Note: 这个变量仅在 register_argc_argv 打开时可用。
  例1: 首先认识一下php变量$argv





<?php
  var_dump($argv);
?>



使用命令: php script.php arg1 arg2 arg3

则会输出以下内容:




array(4) {
=>
string(10) "script.php"
=>
string(4) "arg1"
=>
string(4) "arg2"
=>
string(4) "arg3"
}


例2: getopt 简单示例




<?php
  $options = getopt("f:hp:");
  var_dump($options);
?>


使用命令: php script.php -f value -h  或者   php script.php -fvalue -h

则会输出一下内容:




array(2) {
["f"]=>
string(5) "value"
["h"]=>
bool(false)
}


例3:getopt




<?php
$shortopts= "";
$shortopts .= "f:";// Required value
$shortopts .= "v::"; // Optional value
$shortopts .= "abc"; // These options do not accept values
$longopts= array(
"required:",   // Required value
"optional::",    // Optional value
"option",      // No value
"opt",         // No value
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>

php script.php -f "value for f" -v -a --required value --optional="optional
value" --option will output:

输出:




array(6) {
["f"]=>
string(11) "value for f"
["v"]=>
bool(false)
["a"]=>
bool(false)
["required"]=>
string(5) "value"
["optional"]=>
string(14) "optional value"
["option"]=>
bool(false)
}
页: [1]
查看完整版本: php getopt 小结