protected function parseUrl($url)
    {
        // The regular expression is copied verbatim from RFC 3986, appendix B.
        // The expression does not validate the URL but matches any string.
        preg_match(
            '(^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?)',
            $url, $matches
        );

        // "path" is always present (possibly as an empty string); the rest
        // are optional.
        $this->_scheme   = !empty($matches[1]) ? $matches[2] : false;
        $this->setAuthority(!empty($matches[3]) ? $matches[4] : false);
        $this->_path     = $this->_encodeData($matches[5]);
        $this->_query    = !empty($matches[6])
                           ? $this->_encodeData($matches[7])
                           : false
            ;
        $this->_fragment = !empty($matches[8]) ? $matches[9] : false;
    }
protected function parseUrl($url)
    {
        // The regular expression is copied verbatim from RFC 3986, appendix B.
        // The expression does not validate the URL but matches any string.
        preg_match(
            '(^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?)',
            $url, $matches
        );

        // "path" is always present (possibly as an empty string); the rest
        // are optional.
        $this->_scheme   = !empty($matches[1]) ? $matches[2] : false;
        $this->setAuthority(!empty($matches[3]) ? $matches[4] : false);
        $this->_path     = $this->_encodeData($matches[5]);
        $this->_query    = !empty($matches[6])
                           ? $this->_encodeData($matches[7])
                           : false
            ;
        $this->_fragment = !empty($matches[8]) ? $matches[9] : false;
    }
protected function parseUrl ( $ url ) { // The regular expression is copied verbatim from RFC 3986, appendix B. // The expression does not validate the URL but matches any string. preg_match ( '(^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?)' , $ url , $ matches ) ; // "path" is always present (possibly as an empty string); the rest // are optional. $ this -> _scheme = ! empty ( $ matches [ 1 ] ) ? $ matches [ 2 ] : false ; $ this -> setAuthority ( ! empty ( $ matches [ 3 ] ) ? $ matches [ 4 ] : false ) ; $ this -> _path = $ this -> _encodeData ( $ matches [ 5 ] ) ; $ this -> _query = ! empty ( $ matches [ 6 ] ) ? $ this -> _encodeData ( $ matches [ 7 ] ) : false ; $ this -> _fragment = ! empty ( $ matches [ 8 ] ) ? $ matches [ 9 ] : false ; }
This method uses a regex to parse the url into the designated parts.

@param string $url URL

@return void
@uses   self::$_scheme, self::setAuthority(), self::$_path, self::$_query,
self::$_fragment
@see    __construct
This method uses a regex to parse the url into the designated parts .