欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php 计算两个文件的相对路径

程序员文章站 2022-05-09 23:13:08
...
<?php
/**
 * 计算两个文件的相对路径
 */
function relative_path($path1, $path2)
{
    $arr1 = explode('/', dirname($path1));
    $arr2 = explode('/', dirname($path2));
    for ($i = 0, $len = count($arr2); $i < $len; $i++) {
        if ($arr1[$i] != $arr2[$i]) {
            break;
        }
    }
    //不在用一个根目录下面
    if ($i == 1) {
        $return_path = array();
    }
    //在同一个根目录下
    if ($i != 1 && $i < $len) {
        $return_path = array_fill(0, $len - $i, "..");
    }
    #在同一个目录下
    if ($i == $len) {
        $return_path = array("./");
    }
    $return_path = array_merge($return_path, array_slice($arr1, $i));
    return implode('/', $return_path);
}
//测试一下
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
echo relative_path($a, $b);