//在网上搜了4种答案,结果都不一样,请问哪个是对的?还是都不对,您有好的解决办法吗?求//解!!!
0) {
$returnpath =array_merge($returnpath, array_fill(1, $len - $n, '..'));
}
$returnpath = array_merge($returnpath,array_slice($arra, $n));
return implode('/', $returnpath);
}
echo getrelativepath($a, $b);
//输出结果:/a/b/12/34/../../c/d/e.php
echo
;
function getrelativepath1($a,$b){
$a_url = array(dirname($a));
$b_url = array(dirname($b));
$a_arr = explode('/',$a_url[0]);
$b_arr = explode('/',$b_url[0]);
$len = count($a_arr);
$art1 = '';
$art2 = '';
for($i=1;$i if($a_arr[$i]$b_arr[$i]){
$art1.= '../';
$art2.= $a_arr[$i].'/';
}
}
return $art1.$art2;
}
echo getrelativepath1($a, $b);
//输出结果:../../c/d/
echo ;
function getpathinfo( $a, $b ) {
$a2array = explode('/', $a);
$b2array = explode('/', $b);
$pathinfo = '';
for( $i = 1; $i $pathinfo.=$a2array[$i] == $b2array[$i] ? '../' : $b2array[$i].'/';
}
print_r($pathinfo);
}
getpathinfo($a, $b);
//输出结果:../../12/34/
echo ;
$path=;
$path1 = explode('/',dirname($a));
$path2 = explode('/',dirname($b));
$alen = count($path1);
$blen = count($path2);
$maxlen = max($alen,$blen);
for($i = 1; $i if($path1[$i] != $path2[$i] && isset($path1[$i])){
if(isset($path2[$i]))$burl[]=$path2[$i];
$path.= ../;
}else{
$burl[]=$path2[$i];
}
}
echo $path.implode('/',$burl).'/'.basename($b);
//输出结果:../../a/b/12/34/c.php
?>
