Hi, 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. X
Try this function: PHP: function absolute_url($txt, $base_url){ $needles = array('href="', 'src="', 'background="'); $new_txt = ''; if(substr($base_url,-1) != '/') $base_url .= '/'; $new_base_url = $base_url; $base_url_parts = parse_url($base_url); foreach($needles as $needle){ while($pos = strpos($txt, $needle)){ $pos += strlen($needle); if(substr($txt,$pos,7) != 'http://' && substr($txt,$pos,8) != 'https://' && substr($txt,$pos,6) != 'ftp://' && substr($txt,$pos,9) != 'mailto://'){ if(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 = ''; } return $txt; } $txt is your HTML code where you want to convert your relative links. Works like a charm for me!
Hey, that's a nice one. Does exactly what I need. Thanks, tagammeer (btw, what is "tagammeer"? Is that a name, or does it mean something? Just curious... )
Code: $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.