PHP 根据两个绝对路径算出相对路径的函数

<?php

$path_a = '/root/local/c/d/e.php';
$path_b = '/root/local/12/34/c.php';

$relative_path = getRelativelyPath($path_a, $path_b);
echo $relative_path;

//求$path_b相对于$path_a的相对路径
function getRelativelyPath($path_a, $path_b)
{
    //拆分成数组
    $path_a = explode('/', $path_a);
    $path_b = explode('/', $path_b);
    $path = '';

    //将两个数组的索引重置
    $path_c = array_values(array_diff($path_a, $path_b));
    $path_d = array_values(array_diff($path_b, $path_a));

    //去除掉path_a路径的文件名
    array_pop($path_c);

    //将path_a路径中的目录名替换为..
    foreach ($path_c as &$v){
        $v = '..';
    }

    //合并两个数组
    $path_e = array_merge($path_c, $path_d);

    //拼接路径
    foreach ($path_e as $v){
        $path .= $v . '/';
    }

    return rtrim($path, '/');
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容