計算路徑a對於路徑b的相對路徑

2021-06-17 17:42:48 字數 1000 閱讀 3218

---csdn的這個格式實在dt-_-

<?php

/** * 計算路徑a對於路徑b的相對路徑

* @author wusuopubupt

* @date 2013-08-01

* */

$dira = '/a/e.php';

$dirb = '/a/b/f/e/g.php';

//explode directions

$arr_dira = explode('/', $dira);

$arr_dirb = explode('/', $dirb);

$count_a = count($arr_dira);

$count_b = count($arr_dirb);

$max = max($count_a,$count_b);

$count =0;

for ($i = 0 ; $i<$max ; $i++)

}$relative_path = str_repeat('../', $count_a - $count);

echo $relative_path . implode('/', $arr_dirb) . "\n";

?>

基本思路:先把a,b2個路徑用/分割成陣列,定義count = 0;從下標為0開始遍歷2個陣列,如果arr_a[0] == arr_b[0],那就用array_shift()刪除陣列第乙個值,此時count+1,繼續迴圈直到不相等,此時陣列b只剩下a,b不相同的部分。用陣列a的長度減去count,就是路徑a 到達a,b共同路徑的次數。比如2次,就用../../表示,然後,用/連線陣列b,即可得到a相對於b的路徑

參考:1.啟發的但是有錯誤的演算法:

2.array_pop 用法:

3.array_shift用法:

4.array_diff():計算2個陣列的差集

array_intersect():交集

路徑詳解 絕對路徑,相對路徑,根相對路徑

路徑詳解 重點 1 絕對路徑 1 什麼是絕對路徑 檔案從最高端目錄下開始的完整路徑 1 訪問網路資源 1 由以下四個部分組成 1 協議名稱 2 主機名 ip位址,網域名稱 3 目錄路徑 4 檔名 ex 1 協議名 2 主機名 網域名稱 3 目錄路徑 img4 檔名 bd logo1.png 2 訪問...

php計算相對路徑

計算兩個目錄的相對路徑,網上有好多 發現好多是用array diff assoc這個函式,這樣不對.我來寫乙個簡單的.created by phpstorm.user 優美 date 2019 9 9 time 19 59 function getpath path1,path2 arr1 expl...

絕對路徑 根相對路徑和文件相對路徑

相對路徑包括根相對路徑 site root 和文件相對路徑 document 兩種。根相對路徑 也稱相對跟目錄 的路徑以 開頭,路徑是從當前站點的根目錄開始計算。比如我們前面建的d盤myweb目錄就是名為 myweb 的站點,這時 index.htm 路徑,就表示檔案位置為d myweb index...