php getopt

来源:互联网 发布:vmware mac os x补丁 编辑:程序博客网 时间:2024/06/05 16:45

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

?
使用方式:
    array getopt ( string$options [,array$longopts ] )
string 形如 字符[:]字符[:]如 f:hg:字符表示可以接受命令行包含形如-字符的参数如 -f,字符后面的冒号:表示,当冒号前面的字符出现在参数中时,后面必须跟该参数对应的取整
如 -fname

note: 包含当运行于命令行下时传递给当前脚本的参数的数组。

Note: 这个变量仅在 register_argc_argv 打开时可用。

例1: 首先认识一下php变量  $argv

?
<?php
  var_dump($argv);
?>
使用命令: php script.php arg1 arg2 arg3
则会输出以下内容:
?
array(4) {
  [0]=>
  string(10)"script.php"
  [1]=>
  string(4)"arg1"
  [2]=>
  string(4)"arg2"
  [3]=>
  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)
}