Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- if ( ! class_exists( "Fun" ) ){ class Fun {
- function argvParser( $argv, $fnr = array(), $key = "" ){
- $params = array();
- foreach ( $argv as $v ){
- $eq = false;
- if ( preg_match( "/^--([a-z0-9A-Z\-_]*)(\[\])?(\=)?(.*)/", $v, $m ) ){
- $key = $m[2].$m[1];
- $v = $m[4];
- $eq = $m[3];
- } elseif ( preg_match( "/^-([a-z0-9A-Z\-_])/", $v, $m ) ){
- $key = @$fnr[ $m[1] ] ?: $m[0];
- }
- if ( @$key ){
- if ( substr( $key, 0, 2 ) == "[]" ){
- $baseKey = substr( $key, 2 );
- if ( ! isset( $param[ $baseKey ] ) && ! $eq )
- $params[ $baseKey ] = array();
- else
- $params[ $baseKey ][] = $v;
- } else
- $params[ $key ] = $v;
- } else
- $params[] = $v;
- }
- return $params;
- }
- } }
- /*
- Usage
- $ test.php --var aaa --var2=bbb --var3 --arr[] ccc ddd -f eee
- <?php
- Fun::argvParser( $argv, ['f'=>"var4"] );
- return [0=>"test.php", 'var'=>"aaa", 'var2'=>"bbb", 'var3'=>"", 'arr'=>[0=>"ccc", 1=>"ddd"], 'var4'=>"eee"]
- */
Advertisement
Add Comment
Please, Sign In to add comment