/** ************************************************ * 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; }