示例#1
0
 /**
  * Determine if the the passed url is external to the current running platform
  *
  * @param RokUpdater_Uri $uri
  *
  * @return mixed
  */
 public function isExternal($uri)
 {
     if (is_string($uri)) {
         $uri = new RokUpdater_Uri($uri);
     }
     if (@file_exists($uri->getComponents(RokUpdater_Uri_Components::PATH, RokUpdater_Uri_Builder::FORMAT_RAW))) {
         return false;
     }
     //if the url does not have a scheme must be internal
     if (is_null($uri->getHost())) {
         return false;
     }
     if ($uri->getHost() == $this->site_uri->getHost()) {
         if ($uri->getPort() === RokUpdater_Uri::PORT_UNDEFINED) {
             return false;
         }
         if ($uri->getPort() === $this->site_uri->getPort()) {
             return false;
         }
     }
     // if its a vfs url its a unit test and local
     if ($uri->getScheme() == 'vfs') {
         return false;
     }
     //the url has a host and it isn't internal
     return true;
 }