Пример #1
0
 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/');
 }
Пример #2
0
 /**
  *    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;
 }
Пример #3
0
 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/");
 }
Пример #4
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() ? $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}");
 }
Пример #5
0
 /**
  *    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;
 }
Пример #6
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}");
 }
Пример #7
0
 /**
  *    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);
 }