最簡代碼計算兩個文件相對路徑

<?php
    /**
     * 計算文件2相對於文件1的相對路徑
     *
     * @param  string $file1 文件1的絕對路徑
     * @param  string $file2 文件2的絕對路徑
     * @return string 文件2相對於文件1的相對路徑
     */
    function getRelativePath($file1, $file2)
    {
        $file1Arr = explode('/', $file1);
        $file2Arr = explode('/', $file2);

        return str_repeat('../', count(array_diff_assoc($file1Arr, $file2Arr)) -1) . implode('/', array_diff_assoc($file2Arr, $file1Arr));
    }

    //輸出../Downloads/source/c.php
    echo getRelativePath('/Users/mac/www/a.php', '/Users/mac/Downloads/source/c.php'); 

    //輸出../../25/67/b.php
    echo getRelativePath('/a/b/c/d/e.php', '/a/b/25/67/b.php'); 

?>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章