在 php 中,当我们在获取命令行参数时,可以通过遍历$argv来获取,其实呢是有规范可循的,也就是 gnu c-style parr for command line options 。
比如使用命令wget下载文件时,使用下面的一些方式来指定option都可以
wget /d/file/titlepic/a.jpg -o b.jpgwget /d/file/titlepic/a.jpg -o=b.jpgwget /d/file/titlepic/a.jpg -ob.jpg --tries=3 -bwget /d/file/titlepic/a.jpg -ob.jpg --tries=3 -bvd
我们整理下command line options的规则,首先参数分为短参数名和完整参数名,而且一些还有映射关系。比如我们使用wget时,-o对应–outpu坏死性凋亡t-document。
总结 options 使用规范
短参数名,有一个限制,只能是一个char字符,只能1字节,不能超过1字节,比如上面的第四个命令的最后一个参数就不知道是一个参数还是三个参数了。短参数名用单个连字符(-)开始短参数可以一个-后面跟多个参数名长参数名,则是多字节的的,两个连字符(–)开始行参与实参之间,可以直接连接,也可以用空格隔开,还可以用等号连接参数分为没有值,必须传值,可选传值(也就是可传可不传)在 php 中的使用
getopt ( string $options [, array $longopts [, int &$optind ]] ) : array
$options 短参数字符列表,参数字符后面用:标识必须传值;参数字符后面用::标识可选传值;只有参数字符表示该参数(或者说选项)不接受传值
$longopts 长参数由于是多字节,所以必须是数组,否则没法分隔。长参数同样遵循上面::、:规则
php里面缺少结构体的支撑,相比c的长选项的配置更加简洁,但也缺少了长短选项的映射关系配置。
$shortopts = "o:vv::dh";$longopts = ["output-document:","version","verbo::", "debug", "help"]; $options = getopt($shortopts, $longopts);var_export($options);
php getopt.php -oa.jpg array ( 'o' => 'a.jpg五年级寒假生活指导答案',)php getopt.php -o=a.jpgarray ( 'o' => 'a.jpg',)php getopt.php -o a.jpg array ( 'o' => 'a.jpg',)php getopt.php -o=a.jpg -dhvarray ( 'o' => 'a.jpg', 'd' => fal, 'h' => fal,花海 'v' => fal,)php getopt.php -o=a.jpg -dhv -vvvarray ( 'o' => 'a.jpg', 'd' => fal, 'h' => fal, 'v' => fal, 'v' => 'vv',)
上面例子中我的短参数和长参数是对应的,但是没有数据结构来表示他们的对应关系(在c里面有option结构体来做这个对应关系的管理),所以我们两个都传的话,程序两个值会收到,然后我们自己判断短参数和长参数使用节能建筑哪个。
php getopt.php -o=a.jpg -dhv -vvv --output-document b.jpg --debugarray ( 'o' => 'a.jpg', 'd' => fal, 'h' => fal, 'v' => fal, 'v' => 'vv', 'output-document' => 'b.jpg',聂耳教案 'debug' => fal,)
这样写是不规范的,尽量避免这样的写法。
php getopt.php -o=a.jpg -dhvvvv array ( 'o' => 'a.jpg', 'd' => fal, 'h' => fal, 'v' => fal, 'v' => 'vv',)php getopt.php -o=a.jpg -dhvvvvarray ( 'o' => 'a.jpg', 'd' => fal, 'h' => fal, 'v' => 'vvv',)
总结了这个gnu c command line options 使用的套路,命令使用起来就更溜了,不会懵逼为什么linux下各种工具使用的案例写法“千奇百怪”了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-08 05:38:04,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/03b33d62176291a8b80c9fd703455bef.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP中通过getopt解析GNU C风格命令行选项.doc
本文 PDF 下载地址:PHP中通过getopt解析GNU C风格命令行选项.pdf
留言与评论(共有 0 条评论) |