A function to calculate the complete to find the complete url from a href attribute in a HTML document.
<?php /*
Example:
$urls = array('/blah/../foobar',
'./foobar',
'/blah/../foobar/test',
'/blah/../foobar//bartest',
'blah/./test',
'http://www.com.com/test');
$base = 'http://www.domain.com';
foreach($urls as $k => $v)
{
echo 'Calculated: '.calculateHref($base,$v);
}
*/
function calculateHref($base,$href)
{
$hrefInfo = parse_url($href);
if($hrefInfo['scheme']!="")
{
return $href;
}
$info = parse_url($base);
if(substr($info['path'],-1)!="/")
{
$info['path'].='/';
}
$href = explode('/',$href);
$dir = array();
foreach($href as $v1)
{
switch($v1)
{
case '.':
case '':
break;
case '..':
array_pop($dir);
break;
default:
$dir[]=$v1;
}
}
return $info['scheme'].'://'.$info['host'].$info['path'].implode('/',$dir).'<br>';
} ?>
Sign up to add your own comment here!
|
|