public static function parseParameters($input)
    {
        if (!is_string($input)) {
            return [];
        }

        $pairs = explode('&', $input);

        $parameters = [];
        foreach ($pairs as $pair) {
            $split = explode('=', $pair, 2);
            $parameter = Util::urldecodeRfc3986($split[0]);
            $value = isset($split[1]) ? Util::urldecodeRfc3986($split[1]) : '';

            if (isset($parameters[$parameter])) {
                // We have already recieved parameter(s) with this name, so add to the list
                // of parameters with this name

                if (is_scalar($parameters[$parameter])) {
                    // This is the first duplicate, so transform scalar (string) into an array
                    // so we can add the duplicates
                    $parameters[$parameter] = [$parameters[$parameter]];
                }

                $parameters[$parameter][] = $value;
            } else {
                $parameters[$parameter] = $value;
            }
        }
        return $parameters;
    }
public static function parseParameters($input)
    {
        if (!is_string($input)) {
            return [];
        }

        $pairs = explode('&', $input);

        $parameters = [];
        foreach ($pairs as $pair) {
            $split = explode('=', $pair, 2);
            $parameter = Util::urldecodeRfc3986($split[0]);
            $value = isset($split[1]) ? Util::urldecodeRfc3986($split[1]) : '';

            if (isset($parameters[$parameter])) {
                
                

                if (is_scalar($parameters[$parameter])) {
                    
                    
                    $parameters[$parameter] = [$parameters[$parameter]];
                }

                $parameters[$parameter][] = $value;
            } else {
                $parameters[$parameter] = $value;
            }
        }
        return $parameters;
    }
public static function parseParameters ( $ input ) { if ( ! is_string ( $ input ) ) { return [ ] ; } $ pairs = explode ( '&' , $ input ) ; $ parameters = [ ] ; foreach ( $ pairs as $ pair ) { $ split = explode ( '=' , $ pair , 2 ) ; $ parameter = Util :: urldecodeRfc3986 ( $ split [ 0 ] ) ; $ value = isset ( $ split [ 1 ] ) ? Util :: urldecodeRfc3986 ( $ split [ 1 ] ) : '' ; if ( isset ( $ parameters [ $ parameter ] ) ) { // We have already recieved parameter(s) with this name, so add to the list // of parameters with this name if ( is_scalar ( $ parameters [ $ parameter ] ) ) { // This is the first duplicate, so transform scalar (string) into an array // so we can add the duplicates $ parameters [ $ parameter ] = [ $ parameters [ $ parameter ] ] ; } $ parameters [ $ parameter ] [ ] = $ value ; } else { $ parameters [ $ parameter ] = $ value ; } } return $ parameters ; }
This function takes a input like a=b&a=c&d=e and returns the parsed
parameters like this
array('a' => array('b','c'), 'd' => 'e')

@param string $input

@return array
This function takes a input like a = b&a = c&d = e and returns the parsed parameters like this array ( a = > array ( b c ) d = > e )