首頁  >  文章  >  後端開發  >  透過php 計算兩個檔案之間的相對路徑方法

透過php 計算兩個檔案之間的相對路徑方法

jacklove
jacklove原創
2018-06-09 11:57:572267瀏覽

php 計算兩個檔案之間的相對路徑方法

#例如:

##文件A 的路徑是/home/web/lib/img/cache.php

#檔案B的路徑是 /home/web/api/img /show.php

那麼,檔案A相對於檔案B的路徑是../../lib/img/cache.php,即檔案B 存取檔案A的相對路徑。

function getRelativePath

<?php
/** 计算path1 相对于 path2 的路径,即在path2引用paht1的相对路径
* @param  String $path1
* @param  String $path2
* @return String
*/
function getRelativePath($path1, $path2){
    $arr1 = explode(&#39;/&#39;, $path1);
    $arr2 = explode(&#39;/&#39;, $path2);
    // 获取相同路径的部分
    $intersection = array_intersect_assoc($arr1, $arr2);
    $depth = 0;
    for($i=0,$len=count($intersection); $i<$len; $i++){
        $depth = $i;
        if(!isset($intersection[$i])){
            break;
        }
    }
    // 前面全部匹配
    if($i==count($intersection)){
        $depth ++;
    }
    // 将path2的/ 转为 ../,path1获取后面的部分,然后合拼
    
    // 计算前缀
    if(count($arr2)-$depth-1>0){
        $prefix = array_fill(0, count($arr2)-$depth-1, &#39;..&#39;);
    }else{
        $prefix = array(&#39;.&#39;);
    }
    $tmp = array_merge($prefix, array_slice($arr1, $depth));
    $relativePath = implode(&#39;/&#39;, $tmp);
    return $relativePath;
}
?>

demo

<?php
$path1 = &#39;/home/web/lib/img/cache.php&#39;;
$path2 = &#39;/home/show.php&#39;;
echo getRelativePath($path1, $path2).&#39;<br>&#39;; // ./web/lib/img/cache.php
$path1 = &#39;/home/web/lib/img/cache.php&#39;;
$path2 = &#39;/home/web/api/show.php&#39;;
echo getRelativePath($path1, $path2).&#39;<br>&#39;; // ../lib/img/cache.php
$path1 = &#39;/home/web/lib/img/cache.php&#39;;  
$path2 = &#39;/home/web/api/img/show.php&#39;;  
echo getRelativePath($path1, $path2).&#39;<br>&#39;; // ../../lib/img/cache.php
$path1 = &#39;/home/web/lib/img/cache.php&#39;;
$path2 = &#39;/xhome/web/show.php&#39;;
echo getRelativePath($path1, $path2).&#39;<br>&#39;; // ../../home/web/lib/img/cache.php
?>

本文說明了透過php 計算兩個檔案之間的相對路徑方法,更多相關內容請追蹤php中文網。

相關推薦:

講解php取得指定日期的相關內容

#詳解PHP產生唯一RequestID類別

如何透過MySQL檢視資料庫表格容量大小
#

以上是透過php 計算兩個檔案之間的相對路徑方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP中的多型下一篇:PHP中的多型