用PHP计算两个绝对路径的相对路径,该如何求呢?
先根据分隔符切割,然后查找相同 异同点,然后开始有相同点,从相同点结束为止开始拼接剩余部分,没有的话,到达根路径拼接整体。
截图如下:
代码如下:
<?php $a = '/a/b/c/d/e.php'; $b='/a/b/12/34/c.php'; var_dump(getRelativePath($a,$b)); exit(); function getRelativePath($a,$b) { $arrA = explode('/',$a); $arrB = explode('/',$b); for ($n = 1,$len = count($arrB);$n<$len;$n++) { if($arrA[$n] != $arrB[$n]) { break; } } if($len - $n > 0){ $return = array_fill(1,$len-$n,'..'); } $return = array_merge($return,array_slice($arrA,$n)); return implode('/',$return); }