Einzelnen Beitrag anzeigen

nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: [PHP] URLs umschreiben

  Alt 4. Mai 2006, 02:38
mit den relativen links kannst du doch ganz einfach checken:
gucke ob der link mit http:// anfängt, wenn nicht is es
ein relativer link und knallst einfach die url der seite dran.
(evtl gefolgt von einem /).

edit1:
ich hab dir das ma eben in php hingeknallt.
müsste eigentlich funzen, habs nur 1-2x getestet.

Code:
<?php      
   function ReplaceCallback($hit)
   {
      //$hit[1] = "|'
      //$hit[2] = http|ftp
      //$hit[3] = url
      
      global $currentURL;
   
      //protokoll angegeben?
      if(!empty($hit[2]))
         $url = "{$hit[2]}://";
      else
      {
         //relativer link, akt. url anfügen
         $url = $currentURL;
         if($hit[3][0] != '/') $url .= '/';
      }
      
      $url .= $hit[3];
      $url = base64_encode($url);
      
      $result = " href={$hit[1]}http://www.meine-seite/script.php?url=$url{$hit[1]}";
      return $result;
   }
   
   //die url, dessen html man grade liest
   $currentURL = 'http://www.google.de';
   
   //der reg. ausdruck (für ftp & http links)
   $expr = '# href=(\'|")(?:(http|ftp)://)?(.*)\1#i';
   
   //quelltext einlesen
   $html = file("./test.htm");
   $html = implode("", $html);
   
   //links ersetzen
   $html = preg_replace_callback($expr, ReplaceCallback, $html);
   
   //ausgabe
   echo $html;
?>
  Mit Zitat antworten Zitat