public function parseParams($argv)
    {
        if (is_string($argv)) {
            $argv = gplcart_string_explode_whitespace($argv);
        }

        array_shift($argv);

        $out = array();
        for ($i = 0, $j = count($argv); $i < $j; $i++) {

            $key = null;
            $arg = $argv[$i];

            if (substr($arg, 0, 2) === '--') {

                $pos = strpos($arg, '=');

                if ($pos === false) {
                    $key = substr($arg, 2);
                    if ($i + 1 < $j && $argv[$i + 1][0] !== '-') {
                        $value = $argv[$i + 1];
                        $i++;
                    } else {
                        $value = isset($out[$key]) ? $out[$key] : true;
                    }

                    $out[$key] = $value;
                    continue;
                }

                $key = substr($arg, 2, $pos - 2);
                $value = substr($arg, $pos + 1);
                $out[$key] = $value;
                continue;
            }

            if (substr($arg, 0, 1) === '-') {

                if (substr($arg, 2, 1) === '=') {
                    $key = substr($arg, 1, 1);
                    $value = substr($arg, 3);
                    $out[$key] = $value;
                    continue;
                }

                foreach (str_split(substr($arg, 1)) as $char) {
                    $key = $char;
                    $value = isset($out[$key]) ? $out[$key] : true;
                    $out[$key] = $value;
                }

                if ($i + 1 < $j && $argv[$i + 1][0] !== '-') {
                    $out[$key] = $argv[$i + 1];
                    $i++;
                }

                continue;
            }

            $value = $arg;
            $out[] = $value;
        }

        return $out;
    }
public function parseParams($argv)
    {
        if (is_string($argv)) {
            $argv = gplcart_string_explode_whitespace($argv);
        }

        array_shift($argv);

        $out = array();
        for ($i = 0, $j = count($argv); $i < $j; $i++) {

            $key = null;
            $arg = $argv[$i];

            if (substr($arg, 0, 2) === '--') {

                $pos = strpos($arg, '=');

                if ($pos === false) {
                    $key = substr($arg, 2);
                    if ($i + 1 < $j && $argv[$i + 1][0] !== '-') {
                        $value = $argv[$i + 1];
                        $i++;
                    } else {
                        $value = isset($out[$key]) ? $out[$key] : true;
                    }

                    $out[$key] = $value;
                    continue;
                }

                $key = substr($arg, 2, $pos - 2);
                $value = substr($arg, $pos + 1);
                $out[$key] = $value;
                continue;
            }

            if (substr($arg, 0, 1) === '-') {

                if (substr($arg, 2, 1) === '=') {
                    $key = substr($arg, 1, 1);
                    $value = substr($arg, 3);
                    $out[$key] = $value;
                    continue;
                }

                foreach (str_split(substr($arg, 1)) as $char) {
                    $key = $char;
                    $value = isset($out[$key]) ? $out[$key] : true;
                    $out[$key] = $value;
                }

                if ($i + 1 < $j && $argv[$i + 1][0] !== '-') {
                    $out[$key] = $argv[$i + 1];
                    $i++;
                }

                continue;
            }

            $value = $arg;
            $out[] = $value;
        }

        return $out;
    }
public function parseParams ( $ argv ) { if ( is_string ( $ argv ) ) { $ argv = gplcart_string_explode_whitespace ( $ argv ) ; } array_shift ( $ argv ) ; $ out = array ( ) ; for ( $ i = 0 , $ j = count ( $ argv ) ; $ i < $ j ; $ i ++ ) { $ key = null ; $ arg = $ argv [ $ i ] ; if ( substr ( $ arg , 0 , 2 ) === '--' ) { $ pos = strpos ( $ arg , '=' ) ; if ( $ pos === false ) { $ key = substr ( $ arg , 2 ) ; if ( $ i + 1 < $ j && $ argv [ $ i + 1 ] [ 0 ] !== '-' ) { $ value = $ argv [ $ i + 1 ] ; $ i ++ ; } else { $ value = isset ( $ out [ $ key ] ) ? $ out [ $ key ] : true ; } $ out [ $ key ] = $ value ; continue ; } $ key = substr ( $ arg , 2 , $ pos - 2 ) ; $ value = substr ( $ arg , $ pos + 1 ) ; $ out [ $ key ] = $ value ; continue ; } if ( substr ( $ arg , 0 , 1 ) === '-' ) { if ( substr ( $ arg , 2 , 1 ) === '=' ) { $ key = substr ( $ arg , 1 , 1 ) ; $ value = substr ( $ arg , 3 ) ; $ out [ $ key ] = $ value ; continue ; } foreach ( str_split ( substr ( $ arg , 1 ) ) as $ char ) { $ key = $ char ; $ value = isset ( $ out [ $ key ] ) ? $ out [ $ key ] : true ; $ out [ $ key ] = $ value ; } if ( $ i + 1 < $ j && $ argv [ $ i + 1 ] [ 0 ] !== '-' ) { $ out [ $ key ] = $ argv [ $ i + 1 ] ; $ i ++ ; } continue ; } $ value = $ arg ; $ out [ ] = $ value ; } return $ out ; }
Parses command line parameters
@param array|string $argv
@return array
Parses command line parameters