小结 options 使用正规
函数:
array getopt ( string $options [, array $longopts ] )
参数:
longopts 选项数组。
此数组中的每一种成分会被用作选取字符串,相配了以多个连字符(–State of Qatar传入到剧本的选项。
比方,长选项成分 “opt” 识别了两个精选 –opt。
options 大概带有了以下因素:
$opt = getopt(“s::p:m:habc”,array(‘debug:’,’again::’, ‘help’));
* @link
php里面缺乏构造体的支撑,相比较c的长选项的布署更是简洁,但也贫乏了尺寸选项的投射关系安插。
#$argv, 所有参数的数组,默认第一个为文件名,若要取到第一个参数则:$argv[1]
#$argc, 所有参数总和,相当于 count($argv)
* matched against options passed to the script starting with a single
以上正是本文的全体内容,希望对大家的就学抱有助于,也目的在于我们多多指教脚本之家。
日常PHP都做http格局号令了,可以运用GET or
POST形式选用参数,有些时候必要在shell命令下把PHP充作脚本执行,比如准时职务。那就关乎到在shell命令下怎么给php传参的主题素材,平日常有两种方法传参。
* Only a-z, A-Z and 0-9 are allowed.
在 PHP
中,当大家在赢得命令行参数时,能够经过遍历$argv来取得,其实呢是有正统可循的,也正是GNU C-style parser for command line options 。
一贯读取标准输入数据,写入标准输出
fwrite(STDOUT,’请输入您的博客名:’卡塔尔国;
echo ‘您输入的新闻是:’.fgets(STDIN卡塔尔(قطر;
* two hyphens .
php getopt.php -O=a.jpg -dhVvvv array ( 'O' => 'a.jpg', 'd' => false, 'h' => false, 'V' => false, 'v' => 'vv',)php getopt.php -O=a.jpg -dhvvvVarray ( 'O' => 'a.jpg', 'd' => false, 'h' => false, 'v' => 'vvV',)
* For example, an longopts element “opt” recognizes an
$options
短参数字符列表,参数字符后边用:标志必需传值;参数字符前边用::标记可选传值;独有参数字符表示该参数不收受传值
【www.2979.com】通常PHP都做http方式请求了,一个选项字符串。/**
$shortOpts = "O:Vv::dh";$longOpts = ["output-document:","version","verbose::", "debug", "help"]; $options = getopt($shortOpts, $longOpts);var_export;
php getopt.php -Oa.jpg array php getopt.php -O=a.jpgarray php getopt.php -O a.jpg array php getopt.php -O=a.jpg -dhVarray ( 'O' => 'a.jpg', 'd' => false, 'h' => false, 'V' => false,)php getopt.php -O=a.jpg -dhV -vvvarray ( 'O' => 'a.jpg', 'd' => false, 'h' => false, 'V' => false, 'v' => 'vv',)
尚无冒号(譬喻:h):无需提供value,有提供也不会读取,用来剖断有未有设置了那些参数。
有多少个冒号(比方:p:):须求提供value,未有提供value就不读取这一个参数。可以按这三种方法来设置值:-p 123,–p123,-p=123。
小结了这么些GNU C command line options
使用的老路,命令使用起来就更溜了,不会懵逼为何linux下各样工具使用的案例写法“奇形怪状”了。
* strings and matched against options passed to the script starting
with
举例利用命令wget下载文件时,使用上边的一些办法来钦命option都足以
* @since 4.3.0
短参数名,有一个范围,只好是三个char字符,只可以1字节,不可能超过1字节,举个例子上边包车型客车第八个指令的末尾贰个参数就不亮堂是贰个参数依然四个参数了。
短参数名用单个连字符初始 短参数能够几个-前面跟多个参数名
长参数名,则是多字节的的,五个连字符开首行加入实参之间,能够一贯连接,也能够用空格隔开,还可以用等号连接
参数分为没有值,必需传值,可选传值
* @param string $options Each character in this string will be used as
option characters and
php getopt.php -O=a.jpg -dhV -vvv --output-document b.jpg --debugarray ( 'O' => 'a.jpg', 'd' => false, 'h' => false, 'V' => false, 'v' => 'vv', 'output-document' => 'b.jpg', 'debug' => false,)
* @return array This function will return an array of option / argument
pairs or false on
上面例子中本身的短参数和长参数是对应的,但是并未有数据构造来代表他们的照看关系(在C里面有option布局体来做那些相应关系的拘系),所以大家多个都传的话,程序七个值会收到,然后大家团结推断短参数和长参数使用哪个。
* @since 5.0
wget http://mengkang.net/a.jpg -O b.jpgwget http://mengkang.net/a.jpg -O=b.jpgwget http://mengkang.net/a.jpg -Ob.jpg --tries=3 -bwget http://mengkang.net/a.jpg -Ob.jpg --tries=3 -bvd
* For example, an option string “x” recognizes an
在 PHP 中的使用
function getopt ($options, array $longopts = null, &$optind = null) {}
$longopts
长参数由于是多字节,所以必需是数组,不然无法分隔。长参数相像固守下面::、:法则
* hyphen .
小编们收拾下command line
options的法规,首先参数分为短参数名和总体参数名,何况部分还会有映射关系。比方我们接纳wget时,-O对应–output-document。
* option –opt.
* Gets options from the command line argument list
如此那般写是不正规的,尽量防止那样的写法。
* @param array $longopts [optional] An array of options. Each element
in this array will be used as option
getopt ( string $options [, array $longopts [, int &$optind ]] ) : array
字符参数前边能够:
* failure.
PHP手册的getopt(卡塔尔国介绍如下:
$options
:字符串类型,当中每个字符被看成选项字符,匹配传入脚本的选项以单个连字符最初。比如,多个取舍字符串
“x” 识别了八个增选 -x。 只允许 a-z、A-Z 和 0-9。
* option -x.
*/
* Prior to PHP5.3.0 this parameter was only available on few systems
$longopts
:数组类型,此数组中的每种成分会被看作筛选字符串,相配了以四个连字符传入到剧本的选项。
举个例子,长选项元素 “opt” 识别了叁个增选 –opt。
$options和$longopts的格式差相当少是一模一样的,独一的差别之处是$longopts急需是筛选的数组(每种元素为三个取舍),而$options须要一个字符串。
* @param int $optind If the optind parameter is present, then the index
where argument parsing stopped will be written to this variable.
getopt, Php, www.2979.com, 之家, 参数, 命令行, 实例, 脚本