public function UrlParser::parseUrl

Parse a URL using special handling for a subset of UTF-8 characters in the query string if needed.

Parameters

string $url URL to parse:

Return value

array Returns an array identical to what is returned from parse_url(). When an array key is missing from this array, you must fill it in with NULL to avoid warnings in calling code.

Overrides UrlParserInterface::parseUrl

File

drupal/core/vendor/guzzle/parser/Guzzle/Parser/Url/UrlParser.php, line 28

Class

UrlParser
Parses URLs into parts using PHP's built-in parse_url() function

Namespace

Guzzle\Parser\Url

Code

public function parseUrl($url) {
  $parts = parse_url($url);

  // Need to handle query parsing specially for UTF-8 requirements
  if ($this->utf8 && isset($parts['query'])) {
    $queryPos = strpos($url, '?');
    if (isset($parts['fragment'])) {
      $parts['query'] = substr($url, $queryPos + 1, strpos($url, '#') - $queryPos - 1);
    }
    else {
      $parts['query'] = substr($url, $queryPos + 1);
    }
  }
  $parts['scheme'] = isset($parts['scheme']) ? $parts['scheme'] : null;
  $parts['host'] = isset($parts['host']) ? $parts['host'] : null;
  $parts['path'] = isset($parts['path']) ? $parts['path'] : null;
  $parts['port'] = isset($parts['port']) ? $parts['port'] : null;
  $parts['query'] = isset($parts['query']) ? $parts['query'] : null;
  $parts['user'] = isset($parts['user']) ? $parts['user'] : null;
  $parts['pass'] = isset($parts['pass']) ? $parts['pass'] : null;
  $parts['fragment'] = isset($parts['fragment']) ? $parts['fragment'] : null;
  return $parts;
}