getopt 从命令行参数列表中获取选项
发表日期:2021-07-01 08:55:07 | 来源: | | 浏览(477) 分类:PHP 选项/信息 函数
getopt
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
getopt — 从命令行参数列表中获取选项
说明
getopt(string
$short_options
, array $long_options
= [], int &$rest_index
= null
): array|false解析传入脚本的选项。
参数
-
short_options
-
该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符 (
-
) 开头。 比如,一个选项字符串"x"
识别了一个选项-x
。 只允许 a-z、A-Z 和 0-9。 -
long_options
-
选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符
(
--
) 传入到脚本的选项。 例如,长选项元素"opt"
识别了一个选项--opt
。 -
rest_index
-
如果传递了
rest_index
参数,那么参数解析停止时的索引,将被赋值给此变量。
short_options
可能包含了以下元素:
- 单独的字符(不接受值)
- 后面跟随冒号的字符(此选项需要值)
- 后面跟随两个冒号的字符(此选项的值可选)
注意: 选项的值不接受空格(
" "
)作为分隔符。
long_options
数组可能包含了以下元素:
- 字符串(参数不接受任何值)
- 后面跟随冒号的字符串(此选项需要值)
- 后面跟随两个冒号的字符串(此选项的值可选)
注意:
options
和longopts
的格式几乎是一样的,唯一的不同之处是longopts
需要是选项的数组(每个元素为一个选项),而options
需要一个字符串(每个字符是个选项)。
返回值
此函数会返回选项/参数对, 或者在失败时返回 false
。
注意:
选项的解析会终止于找到的第一个非选项,之后的任何东西都会被丢弃。
更新日志
版本 | 说明 |
---|---|
7.1.0 |
添加 rest_index 参数。
|
范例
示例 #1 getopt() 例子:基本用法
<?php // Script example.php$rest_index = null; $opts = getopt('a:b:', [], $rest_index); $pos_args = array_slice($argv, $rest_index); var_dump($pos_args);
shell> php example.php -fvalue -h
以上例程会输出:
array(2) { ["f"]=> string(5) "value" ["h"]=> bool(false) }
示例 #2 getopt() 例子:引入长选项
<?php // Script example.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); ?>
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option
以上例程会输出:
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) }
示例 #3 getopt() 例子:传递同一多个选项
<?php // Script example.php$options = getopt("abc"); var_dump($options); ?>
shell> php example.php -aaac
以上例程会输出:
array(2) { ["a"]=> array(3) { [0]=> bool(false) [1]=> bool(false) [2]=> bool(false) } ["c"]=> bool(false) }
示例 #4 getopt() 例子:使用 rest_index
<?php // Script example.php$optind = null; $opts = getopt('a:b:', [], $optind); $pos_args = array_slice($argv, $optind); var_dump($pos_args);
shell> php example.php -a 1 -b 2 -- test
以上例程会输出:
array(1) { [0]=> string(4) "test" }
参见
- $argv
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- assert_options 设置/获取断言的各种标志(0)
- assert 检查一个断言是否为 false(0)
- cli_get_process_title Returns the current process title(0)
- cli_set_process_title Sets the process title(0)
- dl 运行时载入一个 PHP 扩展(0)
- extension_loaded 检查一个扩展是否已经加载(0)
- gc_collect_cycles 强制收集所有现存的垃圾循环周期(0)
- gc_disable 停用循环引用收集器(0)
- gc_enable 激活循环引用收集器(0)
- gc_enabled 返回循环引用计数器的状态(0)
- gc_mem_caches Reclaims memory used by the Zend Engine memory manager(0)
- gc_status Gets information about the garbage collector(0)
- get_cfg_var 获取 PHP 配置选项的值(0)
- get_current_user 获取当前 PHP 脚本所有者名称(0)
- get_defined_constants 返回所有常量的关联数组,键是常量名,值是常量值(0)
- get_extension_funcs 返回模块函数名称的数组(0)
- get_include_path 获取当前的 include_path 配置选项(0)
- get_included_files 返回被 include 和 require 文件名的 array(0)
- get_loaded_extensions 返回所有编译并加载模块名的 array(0)
- get_magic_quotes_gpc 获取当前 magic_quotes_gpc 的配置选项设置(0)
- get_magic_quotes_runtime 获取当前 magic_quotes_runtime 配置选项的激活状态(0)
- get_required_files 别名 get_included_files()(0)
- get_resources Returns active resources(0)
- getenv 获取一个环境变量的值(0)
- getlastmod 获取页面最后修改的时间(0)
- getmygid 获取当前 PHP 脚本拥有者的 GID(0)
- getmyinode 获取当前脚本的索引节点(inode)(0)
- getmypid 获取 PHP 进程的 ID(0)
- getmyuid 获取 PHP 脚本所有者的 UID(0)
- getopt 从命令行参数列表中获取选项(0)
- getrusage 获取当前资源使用状况(0)
- ini_alter 别名 ini_set()(0)
- ini_get_all 获取所有配置选项(0)
- ini_get 获取一个配置选项的值(0)
- ini_restore 恢复配置选项的值(0)
- ini_set 为一个配置选项设置值(0)
- main 虚拟的main()(0)
- memory_get_peak_usage 返回分配给 PHP 内存的峰值(0)
- memory_get_usage 返回分配给 PHP 的内存量(0)
- php_ini_loaded_file 取得已加载的 php.ini 文件的路径(0)
- php_ini_scanned_files 返回从额外 ini 目录里解析的 .ini 文件列表(0)
- php_sapi_name 返回 web 服务器和 PHP 之间的接口类型(0)
- php_uname 返回运行 PHP 的系统的有关信息(0)
- phpcredits 打印 PHP 贡献者名单(0)
- phpinfo 输出关于 PHP 配置的信息(0)
- phpversion 获取当前的PHP版本(0)
- putenv 设置环境变量的值(0)
- restore_include_path 还原 include_path 配置选项的值(0)
- set_include_path 设置 include_path 配置选项(0)
- set_time_limit 设置脚本最大执行时间(0)
- sys_get_temp_dir 返回用于临时文件的目录(0)
- version_compare 对比两个「PHP 规范化」的版本数字字符串(0)
- zend_thread_id 返回当前线程的唯一识别符(0)
- zend_version 获取当前 Zend 引擎的版本(0)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)