---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...