PHP如何计算两个路径的相对路径:
$a = /a/b/c/d/e.php
$b = /a/b/12/34/f.php
计算$b相对于$a的路径
程序设计如下:
$arrA = explode('/',dirname($a));
unset($arrA[0]);
$arrB = explode('/',dirname($b));
unset($arrB[0]);
$len = count($arrB);
for($n=1;$n<=$len;$n++){
if($arrA[$n]!=$arrB[$n]){
break;
}
}
if($n==1){
$path = dirname($b);
$path1 = array_merge(array_fill(1,$len,'..'),$arrA);
$path .='/'.implode('/',$path1).'/'.basename($a);
echo $path;
}elseif($len>$n){
$path1 = array_slice($arrA,($n-1));
$path2 = array_merge(array_fill(1,($n-1),'..'),$path1);
$path = dirname($b)."/".implode('/',$path2).'/'.basename($a);
echo $path;
}else{
echo '两者在同一目录';
}