PHP计算两个绝对路径的相对路径

用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);
}
复制代码

 

posted @   李照耀  阅读(810)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示