计算出$b相对于$a的相对路径

/** *获取b相对于a的目录 **/ function getRelative($a,$b) { $arr = explode("/",$a); $brr = explode("/",$b); $c = count($arr)-2; $d = count($brr)-2; //之所以减二,一个是不在后面的文件名, //数组的第一个元素是0,值为空,所以再减去一个 $e = ($c>$d) ? $c:$d;//取两者较大的,进行循环 $str1 = $str2 = ''; for ($j=0;$j<=$e;$j++) { $cur_a = isset($arr[$j]) ? $arr[$j] : ''; $cur_b = isset($brr[$j]) ? $brr[$j] : ''; if ($cur_a == $cur_b) { continue; } else { if ($j <= $c)//找出不等的$arr中的路径部分 { $str1.='/'.$cur_a; } if ($j <= $d )//找出不等的$brr中的路径部分 { $str2.="../"; } } } return $str2.substr($str1,1,strlen($str1));//substr($str1,1,strlen($str1)去除多余的一个'/' } $a = '/a/b/34/56/ss/e.php'; $b = '/a/b/12/c.php'; echo getRelative($a,$b);

你可能感兴趣的:(c)