2008年9月8日月曜日

PHPで相対パスから絶対URL(URI)を作成する

元となるURLとそれに対する相対パスを指定すると絶対URLを作成するというやつです。
function make_uri($base='', $rel_path=''){

$parse=array();
$parse=parse_url($base);

if (preg_match('/^https\:\/\//',$rel_path) ){
return $rel_path;
}
elseif ( preg_match('/^\/.+$/', $rel_path) ){
return $parse['scheme'].'://'.$parse['host'].$rel_path;
}
else{
$a=split('/',dirname($parse['path']));
$b=split('/',$rel_path);
foreach ($b as $v){
if ($v=='.'){}
elseif($v=='..'){ array_pop($a); }
else{ array_push($a,$v); }
}
$path=join('/',$a);
return $parse['scheme'].'://'.$parse['host'].$path;
}
}
http://logic.stepserver.jp/data/archives/501.html

0 件のコメント: