Biz, bunun için bir getopt ayrıştırıcı uygulamak vb kısa, uzun seçenek isimlerini, tipi kısıtlaması, seçenek yazdırmayı .. destek
Blog post about this:
http://c9s.blogspot.com/2011/11/php-getoptionkit.html
Bazı özet:
Özet:
<?php
use GetOptionKit\GetOptionKit;
$getopt = new GetOptionKit;
$spec = $getopt->add( 'f|foo:' , 'option require value' ); # returns spec object.
$getopt->add( 'b|bar+' , 'option with multiple value' );
$getopt->add( 'z|zoo?' , 'option with optional value' );
$getopt->add( 'f|foo:=i' , 'option require value, with integer type' );
$getopt->add( 'f|foo:=s' , 'option require value, with string type' );
$getopt->add( 'v|verbose' , 'verbose flag' );
$getopt->add( 'd|debug' , 'debug flag' );
$result = $opt->parse( array( 'program' , '-f' , 'foo value' , '-v' , '-d' ) );
$result = $opt->parse( $argv );
$spec = $result->verbose;
$spec = $result->debug;
$spec->value; # get value
GetOptionKit \ OptionPrinter sizin için seçenekleri yazdırabilirsiniz:
* Available options:
-f, --foo option requires a value.
-b, --bar option with multiple value.
-z, --zoo option with optional value.
-v, --verbose verbose message.
-d, --debug debug message.
--long long option name only.
-s short option name only.
Demo
Kontrol edin examples/demo.php
.
Çalıştırın:
% php examples/demo.php -f test -b 123 -b 333
Baskı:
* Available options:
-f, --foo <value> option requires a value.
-b, --bar <value>+ option with multiple value.
-z, --zoo [<value>] option with optional value.
-v, --verbose verbose message.
-d, --debug debug message.
--long long option name only.
-s short option name only.
Enabled options:
* key:foo spec:-f, --foo <value> desc:option requires a value.
value => test
* key:bar spec:-b, --bar <value>+ desc:option with multiple value.
Array
(
[0] => 123
[1] => 333
)
https://github.com/c9s/php-GetOptionKit: GetOptionKit GitHub üzerinde