程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php中如何計算兩個文件之間的相對路徑

php中如何計算兩個文件之間的相對路徑

編輯: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('/', $path1);  
    $arr2 = explode('/', $path2);  
      
    // 獲取相同路徑的部分  
    $intersection = array_intersect_assoc($arr1, $arr2);  
      
    $depth = 0;  
      
    for($i=0,$len=count($intersection); $i<$len; $i++){  
        if(!isset($intersection[$i])){  
            $depth = $i;  
            break;  
        }  
    }  
      
    // 將path2的/ 轉為 ../,path1獲取後面的部分,然後合拼  
    $tmp = array_merge(array_fill(0, count($arr2)-$depth-1, '..'), array_slice($arr1, $depth));  
      
    $relativePath = implode('/', $tmp);  
      
    return $relativePath;  
}  
?>

demo

<?php  
$path1 = '/home/web/lib/img/cache.php';  
$path2 = '/home/web/api/img/show.php';  
      
echo getRelativePath($path1, $path2); // ../../lib/img/cache.php  
?>

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved