
19th April 2005, 17:59
|
|
Junior Member
|
|
Join Date: Apr 2005
Posts: 7
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
PHP: Turn relative links into absolute ones?
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
|

19th April 2005, 18:36
|
|
Junior Member
|
|
Join Date: Apr 2005
Posts: 10
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Try this function:
PHP Code:
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!
|

20th April 2005, 19:32
|
|
Junior Member
|
|
Join Date: Apr 2005
Posts: 7
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
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...  )
|

20th April 2005, 20:00
|
|
Junior Member
|
|
Join Date: Apr 2005
Posts: 10
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Quote:
|
btw, what is "tagammeer"? Is that a name, or does it mean something? Just curious...
|
No, it's not a name, "Tag am Meer" is German for "a day at the beach". I hope it gets warmer soon...
|

3rd October 2008, 09:13
|
|
Senior Member
|
|
Join Date: Nov 2006
Location: Poland,Włocławek
Posts: 363
Thanks: 22
Thanked 33 Times in 29 Posts
|
|
Like for example PHP-QT.
|

24th November 2008, 19:26
|
|
Junior Member
|
|
Join Date: Nov 2008
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Some Example please
Quote:
Originally Posted by tagammeer
Try this function:
PHP Code:
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! 
|
Hi, if you can give me an example how to use this wonderfull piece of code...
|

25th November 2008, 17:51
|
|
Super Moderator
|
|
Join Date: Apr 2005
Location: Lüneburg, Germany
Posts: 31,853
Thanks: 781
Thanked 1,558 Times in 1,477 Posts
|
|
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.
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT +2. The time now is 00:32.
|
Recent comments
16 hours 15 sec ago
21 hours 16 min ago
21 hours 27 min ago
21 hours 35 min ago
22 hours 37 min ago
1 day 44 min ago
1 day 3 hours ago
1 day 3 hours ago
1 day 3 hours ago
1 day 4 hours ago