function testMakingADirectoryUrlAbsolute() { $url = new SimpleUrl('hello/'); $this->assertEqual($url->getPath(), 'hello/'); $this->assertEqual($url->getBasePath(), 'hello/'); $this->assertEqual($url->getPage(), ''); $absolute = $url->makeAbsolute('http://host.com/I/am/here/page.html'); $this->assertEqual($absolute->getPath(), '/I/am/here/hello/'); }
/** * Test to see if the URL is within the directory * tree of the realm. * @param SimpleUrl $url URL to test. * @return boolean True if subpath. * @access public */ function isWithin($url) { if ($this->isIn($this->root, $url->getBasePath())) { return true; } if ($this->isIn($this->root, $url->getBasePath() . $url->getPage() . '/')) { return true; } return false; }
function testAbsolutePathPageSplitting() { $url = new SimpleUrl("http://host.com/here/there/somewhere.php"); $this->assertEqual($url->getPath(), "/here/there/somewhere.php"); $this->assertEqual($url->getPage(), "somewhere.php"); $this->assertEqual($url->getBasePath(), "/here/there/"); }
/** * Replaces unknown sections to turn a relative * URL into an absolute one. The base URL can * be either a string or a SimpleUrl object. * @param string/SimpleUrl $base Base URL. * @access public */ function makeAbsolute($base) { if (!is_object($base)) { $base = new SimpleUrl($base); } $scheme = $this->getScheme() ? $this->getScheme() : $base->getScheme(); $host = $this->getHost() ? $this->getHost() : $base->getHost(); if (substr($this->_path, 0, 1) == "/") { $path = $this->normalisePath($this->_path); } else { $path = $this->normalisePath($base->getBasePath() . $this->_path); } $identity = ''; if ($this->_username && $this->_password) { $identity = $this->_username . ':' . $this->_password . '@'; } $encoded = $this->getEncodedRequest(); $fragment = $this->getFragment() ? '#' . $this->getFragment() : ''; return new SimpleUrl("{$scheme}://{$identity}{$host}{$path}{$encoded}{$fragment}"); }
/** * Test to see if the URL is within the directory * tree of the realm. * @param SimpleUrl $url URL to test. * @return boolean True if subpath. * @access public */ function isWithin($url) { return strpos($url->getBasePath(), $this->_root) === 0; }
/** * Replaces unknown sections to turn a relative * URL into an absolute one. The base URL can * be either a string or a SimpleUrl object. * @param string/SimpleUrl $base Base URL. * @access public */ function makeAbsolute($base) { if (!is_object($base)) { $base = new SimpleUrl($base); } $scheme = $this->getScheme() ? $this->getScheme() : $base->getScheme(); $host = $this->getHost(); $port = $this->getPort() ? ':' . $this->getPort() : ''; $path = $this->normalisePath($this->_path); if (!$host) { $host = $base->getHost(); $port = $base->getPort() ? ':' . $base->getPort() : ''; if ($this->_isRelativePath($this->_path)) { $path = $this->normalisePath($base->getBasePath() . $this->_path); } } $identity = $this->_getIdentity() ? $this->_getIdentity() . '@' : ''; $encoded = $this->getEncodedRequest(); $fragment = $this->getFragment() ? '#' . $this->getFragment() : ''; $coords = $this->_x !== false ? '?' . $this->_x . ',' . $this->_y : ''; return new SimpleUrl("{$scheme}://{$identity}{$host}{$port}{$path}{$encoded}{$fragment}{$coords}"); }
/** * Replaces unknown sections to turn a relative * URL into an absolute one. * @param string $base Base URL. * @access public */ function makeAbsolute($base) { $base_url = new SimpleUrl($base); if (!$this->getScheme()) { $this->_scheme = $base_url->getScheme(); } if (!$this->getHost()) { $this->_host = $base_url->getHost(); } if (substr($this->getPath(), 0, 1) != "/") { $this->_path = $base_url->getBasePath() . $this->getPath(); } $this->_path = $this->normalisePath($this->_path); }