Piwik\API\Request::getRequestArrayFromString PHP Method

getRequestArrayFromString() public static method

Converts the supplied request string into an array of query paramater name/value mappings. The current query parameters (everything in $_GET and $_POST) are forwarded to request array before it is returned.
public static getRequestArrayFromString ( string | array | null $request, array $defaultRequest = null ) : array
$request string | array | null The base request string or array, eg, `'module=UserLanguage&action=getLanguage'`.
$defaultRequest array Default query parameters. If a query parameter is absent in `$request`, it will be loaded from this. Defaults to `$_GET + $_POST`.
return array
    public static function getRequestArrayFromString($request, $defaultRequest = null)
    {
        if ($defaultRequest === null) {
            $defaultRequest = self::getDefaultRequest();
            $requestRaw = self::getRequestParametersGET();
            if (!empty($requestRaw['segment'])) {
                $defaultRequest['segment'] = $requestRaw['segment'];
            }
            if (!isset($defaultRequest['format_metrics'])) {
                $defaultRequest['format_metrics'] = 'bc';
            }
        }
        $requestArray = $defaultRequest;
        if (!is_null($request)) {
            if (is_array($request)) {
                $requestParsed = $request;
            } else {
                $request = trim($request);
                $request = str_replace(array("\n", "\t"), '', $request);
                $requestParsed = UrlHelper::getArrayFromQueryString($request);
            }
            $requestArray = $requestParsed + $defaultRequest;
        }
        foreach ($requestArray as &$element) {
            if (!is_array($element)) {
                $element = trim($element);
            }
        }
        return $requestArray;
    }

Usage Example

Example #1
0
 /**
  * Redirects the user to a paypal so they can donate to Piwik.
  */
 public function redirectToPaypal()
 {
     $parameters = Request::getRequestArrayFromString($request = null);
     foreach ($parameters as $name => $param) {
         if ($name == 'idSite' || $name == 'module' || $name == 'action') {
             unset($parameters[$name]);
         }
     }
     $url = "https://www.paypal.com/cgi-bin/webscr?" . Url::getQueryStringFromParameters($parameters);
     Url::redirectToUrl($url);
     exit;
 }
All Usage Examples Of Piwik\API\Request::getRequestArrayFromString