$a = '/e/a/b/d.php';
$b = '/a/b/12/34/b/d/c.php';
function get_ret_path($a,$b){
$a = trim($a,'/');
$b = trim($b,'/');
$ad = dirname($a);
$bd = dirname($b);
$arr_a = explode('/',$ad);
$arr_b = explode('/',$bd);
//从前面开始比起,找到不同位置
$position = 0;
foreach($arr_a as $key => $dir){
if($arr_a[$key] == $dir){
$position = $key;
}else{
break;
}
}
//echo $position;
//$a相对于$b
//取b的该位置的相对目录
//+1是文件自身目录
$prefix = str_repeat("../",count($arr_b)-$position+1);
$ext = implode('/',array_slice($arr_a,$position));
return $prefix.$ext.'/'.basename($a);
}
echo get_ret_path($a,$b);
N年前看到过这个题目,今天再写一次