PHP: Turn relative links into absolute ones?

Discussion in 'Programming/Scripts' started by xtothez, Apr 19, 2005.

  1. xtothez

    xtothez New Member


    does anyone know of a function to turn relative links in HTML code (<a href="..."></a>, <img src="...">, ...) into absolute links?

    Any help is appreciated.

  2. tagammeer

    tagammeer New Member

    Try this function:

    function absolute_url($txt$base_url){
    $needles = array('href="''src="''background="');
    $new_txt '';
    substr($base_url,-1) != '/'$base_url .= '/';
    $new_base_url $base_url;
    $base_url_parts parse_url($base_url);

    $needles as $needle){
    $pos strpos($txt$needle)){
    $pos += strlen($needle);
    substr($txt,$pos,7) != 'http://' && substr($txt,$pos,8) != 'https://' && substr($txt,$pos,6) != 'ftp://' && substr($txt,$pos,9) != 'mailto://'){
    substr($txt,$pos,1) == '/'$new_base_url $base_url_parts['scheme'].'://'.$base_url_parts['host'];
    $new_txt .= substr($txt,0,$pos).$new_base_url;
          } else {
    $new_txt .= substr($txt,0,$pos);
    $txt substr($txt,$pos);
    $txt $new_txt.$txt;
    $new_txt '';
    $txt is your HTML code where you want to convert your relative links. Works like a charm for me! :)
  3. xtothez

    xtothez New Member

    Hey, that's a nice one. Does exactly what I need. :D

    Thanks, tagammeer (btw, what is "tagammeer"? Is that a name, or does it mean something? Just curious... :rolleyes: )
  4. tagammeer

    tagammeer New Member

    No, it's not a name, "Tag am Meer" is German for "a day at the beach". I hope it gets warmer soon... :cool:
  5. Leszek

    Leszek Member

    Like for example PHP-QT.
  6. mmrs151

    mmrs151 New Member

    Some Example please

    Hi, if you can give me an example how to use this wonderfull piece of code...
  7. falko

    falko Super Moderator Howtoforge Staff

    $new_txt = absolute_url($txt, $base_url);
    where $txt holds the text that you want to modify and $base_url is the URL of the site.

Share This Page