PHPPHP使用getopt()解析cli参数

PHP手册的getopt()介绍如下:

/**

* Gets options from the command line argument list

* @link http://php.net/manual/en/function.getopt.php

* @param string $options Each character in this string will be used as
option characters and

* matched against options passed to the script starting with a single

* hyphen (-).

* For example, an option string “x” recognizes an

* option -x.

* Only a-z, A-Z and 0-9 are allowed.

* @param array $longopts [optional] An array of options. Each element
in this array will be used as option

* strings and matched against options passed to the script starting
with

* two hyphens (–).

* For example, an longopts element “opt” recognizes an

* option –opt.

*PHP, Prior to PHP5.3.0 this parameter was only available on few systems

* @param int $optind If the optind parameter is present, then the index
where argument parsing stopped will be written to this variable.

* @return array This function will return an array of option / argument
pairs or false on

* failure.

* @since 4.3.0

* @since 5.0

*/

function getopt ($options, array $longopts = null, &$optind = null) {}

 

$options
:字符串类型,其中每个字符被当选项字符,匹配传入脚本的抉择项为单个连字符(-)先导。比如,一个挑字符串
“x” 识别了一个选 -x。 只同意 a-z、A-Z 和 0-9。

字符参数后可以:

  1. 从未冒号(比如:h):不需要提供value,有供吗非相会读取,用来判断出无发安了此参数。
  1. 发一个冒号(比如:p:):需要提供value,没有供value就未念博这参数。可以服从当时几乎栽方法来设置值:-p 123,–p123,-p=123。

  2. 出少数只冒号(比如:f::):value是可选的,有无来安value都读取(没有安装时读取的value为false),value需要并在参数后,不可知用空格分隔开。可以遵照当时几乎种植艺术来设置值:-f=123,-f123。

$longopts
:数组类型,此数组中的每个元素会受作选项字符串,匹配了因为少单连字符(–)传入到剧本的选用项。
例如,长选项元素 “opt” 识别了一个采用 –opt。

$options$longopts的格式几乎是一律的,唯一的不同之处是$longopts待是摘之数组(每个元素呢一个拣),而$options急需一个字符串(每个字符是独选拔)。

相关文章