元となるURLとそれに対する相対パスを指定すると絶対URLを作成するというやつです。
元URL:http://www.test.com/gallery/index.html 相対パス:../contact.html 絶対URL:http://www.test.com/contact.html
よくあるあれですが、Googleで探して見つからなかったので作成してみました。
使い方
make_uri('元url','相対パス');
です。
//========================================== _make_uri:version 1.2
function _make_uri($base='', $rel_path=''){
$base = preg_replace('/\/[^\/]+$/','/',$base);
$parse = array();
$parse = parse_url($base);
if (preg_match('/^https\:\/\//',$rel_path) ){
return $rel_path;
}
elseif ( preg_match('/^\/.+/', $rel_path) ){
$out = $parse['scheme'].'://'.$parse['host'].$rel_path;
return $out;
}
$tmp = array();
$a = array();
$b = array();
$tmp = split('/',$parse['path']);
foreach ($tmp as $v){
if ($v){ array_push($a,$v); }
}
$b = split('/',$rel_path);
foreach ($b as $v){
if ($v=='.'){}
elseif($v=='..'){ array_pop($a); }
else{ array_push($a,$v); }
}
$path = join('/',$a);
$out = $parse['scheme'].'://'.$parse['host'].'/'.$path;
return $out;
}
注意:¥マークは適宜バックスラッシュに置換すること。

