用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);
}
转载于:https://www.cnblogs.com/lizhaoyao/p/8759853.html