Ejemplo n.º 1
0
 /** ************************************************
  * Turns all relative URLs into absolute URLs
  * @return: null
  * Notes: 
  *   Different forms of urls
  *       /dir/
  *       /dir
  *       /dir/index.php
  *       dir/index.php
  *       dir/index.php?var=v
  *       index.php
  *       /index.php
  *       ./dir
  *       ../../dir
  *       <a href="javascript:;" class="prev"></a>
  ***************************************************/
 private function processURLs()
 {
     $tmpArray = array();
     foreach ($this->aAnchors as $url) {
         $url = trim($url);
         echo $this->sSay('I\'m going to process url: ', $url);
         if (WebUtils::isValidURL($url)) {
             $url = rtrim($url, '/');
             $tmpArray[] = $url;
             //echo $this->sSay('After Processing url: ', $url);
         } else {
             if (strlen($url) <= 0) {
                 continue;
             }
             if ($this->containsJS($url)) {
                 continue;
             }
             if ($this->containsHash($url)) {
                 continue;
             }
             //TODO: Not sure about this might not need it. URLs can contain hashes but link to a differnt page?
             if ($this->containsMailTo($url)) {
                 continue;
             }
             if (strpos($url, '/') === 0) {
                 //means root.
                 $url = rtrim($url, '/');
                 $tmpArray[] = $this->sBaseURL . $url;
             } else {
                 if (strpos($url, './') === 0 || strpos($url, '../') === 0) {
                     //realative path try and travers
                     $url = rtrim($url, '/');
                     echo $this->sSay('I\'ve found a relative path ', $url);
                     $rtn = WebUtils::traversRelPath($this->sURL, $url);
                     echo $this->sSay('I\'ve tried to travers it and arrived at ', $rtn);
                     if (WebUtils::isValidURL($rtn)) {
                         $tmpArray[] = $rtn;
                     } else {
                         echo $this->sSay('Relative url parse failed. url is', $rtn);
                     }
                 } else {
                     //who knows just add it;
                     $url = rtrim($url, '/');
                     echo $this->sSay('Not sure what to do with this url: ', $url);
                     $tmpArray[] = $this->sCurrentPathURL . '/' . $url;
                     echo $this->sSay('So I\'ll add on the current path: ', $this->sCurrentPathURL . '/' . $url);
                 }
             }
             //echo $this->sSay('After Processing url: ', $tmpArray[count($tmpArray)-1]);
         }
     }
     $this->aAnchors = null;
     $this->aAnchors = $tmpArray;
 }