解析url用parse_url,然后按src是否已经是绝对路径、是否相对根目录、是否相对当前目录三种情况加以讨论
function getAbsoluteImageUrl($pageUrl,$imgSrc)
{
$imgInfo = parse_url($imgSrc);
if (! empty($imgInfo['host'])) {
//img src is already an absolute URL
return $imgSrc;
}
else {
$urlInfo = parse_url($pageUrl);
$base = $urlInfo['scheme'].'//'.$urlInfo['host'];
if (substr($imgSrc,0,1) == '/') {
return $base . $imgSrc;
}
else {
return
$base
. substr($urlInfo['path'],0,strrpos($urlInfo['path'],'/'))
. '/' . $imgSrc;
}
}
}
$host = 'http://domain.name/a/b.html';
$imgSrc = '/images/c.gif';
echo getAbsoluteImageUrl($host,$imgSrc);