zzengineer/getoptc

C语言风格的getopt用于php

0.5 2015-09-21 21:15 UTC

This package is not auto-updated.

Last update: 2024-10-02 09:49:06 UTC


README

C语言风格的getopt用于php

Latest Stable Version Total Downloads Latest Unstable Version License

名称

getoptc -- 从命令行参数列表中获取选项字符

概要

function getoptc($args, $optstring, &$optind, &$optarg, $opterr = true)

描述

getoptc() 函数解析给定的命令行参数列表,并返回下一个已知选项字符。如果选项字符已在接受的选项字符字符串 $optstring 中指定,则该选项字符是 已知 的。

选项字符串可以包含以下元素:单个字符,以及后跟冒号以指示选项参数将要跟随的字符。如果单个字符后跟两个冒号,则选项参数是可选的;$optarg 被设置为当前单词的其余部分。对于 getoptc() 来说,如果后面的参数有前导空白,这并不重要。

getoptc() 返回时,$optarg 被设置为预期的参数或 NULL$optind 包含下一次调用 getoptc() 的下一个列表参数的索引。

$optind 变量初始化为 1。在调用 getoptc() 之前,可以将 $optind 变量设置为其他值,以便跳过更多或更少的列表条目。

$opterr 变量初始化为 true,可以禁用以抑制错误消息。见返回值

返回值

getoptc() 函数返回 $optstring 中的下一个已知选项字符。如果 getopt() 遇到不在 $optstring 中的字符或检测到缺失的选项参数,则返回 ?(问号)。如果 $optstring 有前导 :,则缺失的选项参数会导致返回 : 而不是 ?。在任何情况下,变量 $optarg 都会设置为导致错误的字符。当参数列表耗尽时,getoptc() 返回 false$optind 将包含第一个非选项参数的索引。每次后续调用 getoptc() 都将返回 false 并保持 $optind$optarg 不变。

示例

while (($c =  getoptc($argv,'ab:c::', $optind, $optarg)) !== false)
  switch ($c) {
  case 'a': $flag_a=true; break;
  case 'b': $arg_b=$optarg; break;
  case 'c': $flag_c=true; $arg_c=$optarg; break;
  case '?': 
  case ':': 
  default : usage(); exit(1);
  }
  
for ($i = $optind; $i < count($argv); $i++)
   print "programm argument ". $argv[$i]. PHP_EOL;

诊断

如果 getoptc() 函数遇到不在字符串 $optstring 中的字符或检测到缺失的选项参数,它将错误消息写入 STDERR。将 $opterr 设置为 false 将禁用这些错误消息。

允许选项参数以 - 开头;这是合理的,但减少了可能进行的错误检查的数量。

其他