Piwik\UrlHelper::getQueryStringWithExcludedParameters PHP Метод

getQueryStringWithExcludedParameters() публичный статический Метод

Parameters that are in $parametersToExclude will not appear in the result.
public static getQueryStringWithExcludedParameters ( $queryParameters, $parametersToExclude ) : string
$queryParameters Array of query parameters, eg, `array('site' => '0', 'date' => '2012-01-01')`.
$parametersToExclude Array of query parameter names that shouldn't be in the result query string, eg, `array('date', 'period')`.
Результат string A query string, eg, `"?site=0"`.
    public static function getQueryStringWithExcludedParameters($queryParameters, $parametersToExclude)
    {
        $validQuery = '';
        $separator = '&';
        foreach ($queryParameters as $name => $value) {
            // decode encoded square brackets
            $name = str_replace(array('%5B', '%5D'), array('[', ']'), $name);
            if (!self::in_array_matches_regex(strtolower($name), $parametersToExclude)) {
                if (is_array($value)) {
                    foreach ($value as $param) {
                        if ($param === false) {
                            $validQuery .= $name . '[]' . $separator;
                        } else {
                            $validQuery .= $name . '[]=' . $param . $separator;
                        }
                    }
                } elseif ($value === false) {
                    $validQuery .= $name . $separator;
                } else {
                    $validQuery .= $name . '=' . $value . $separator;
                }
            }
        }
        $validQuery = substr($validQuery, 0, -strlen($separator));
        return $validQuery;
    }

Usage Example

Пример #1
0
 /**
  * Given the Input URL, will exclude all query parameters set for this site
  *
  * @static
  * @param $originalUrl
  * @param $idSite
  * @return bool|string
  */
 public static function excludeQueryParametersFromUrl($originalUrl, $idSite)
 {
     $originalUrl = self::cleanupUrl($originalUrl);
     $parsedUrl = @parse_url($originalUrl);
     $parsedUrl = self::cleanupHostAndHashTag($parsedUrl, $idSite);
     $parametersToExclude = self::getQueryParametersToExclude($idSite);
     if (empty($parsedUrl['query'])) {
         if (empty($parsedUrl['fragment'])) {
             return UrlHelper::getParseUrlReverse($parsedUrl);
         }
         // Exclude from the hash tag as well
         $queryParameters = UrlHelper::getArrayFromQueryString($parsedUrl['fragment']);
         $parsedUrl['fragment'] = UrlHelper::getQueryStringWithExcludedParameters($queryParameters, $parametersToExclude);
         $url = UrlHelper::getParseUrlReverse($parsedUrl);
         return $url;
     }
     $queryParameters = UrlHelper::getArrayFromQueryString($parsedUrl['query']);
     $parsedUrl['query'] = UrlHelper::getQueryStringWithExcludedParameters($queryParameters, $parametersToExclude);
     $url = UrlHelper::getParseUrlReverse($parsedUrl);
     return $url;
 }
All Usage Examples Of Piwik\UrlHelper::getQueryStringWithExcludedParameters