分享 求相對路徑方法小研究

2021-08-26 19:51:25 字數 830 閱讀 3837

題目如下:

寫乙個函式,算出兩個檔案的相對路徑

如 $a = '/a/b/c/d/e.php';

$b = '/a/b/12/34/c.php';

計算出 $b 相對於 $a 的相對路徑應該是 ../../c/d

看了很多答案,發現都有小問題,比如$a='/a/b/c/d/e/f/n.php';,$b='/a/b/c/34/gg/a/b/c/g.php';有不少答案都是採用迴圈陣列找不同元素時用../來拼接解決,這樣的後面有相同目錄就會出錯了。好了廢話就不說了,奉上我寫的方法,難免有不足哈,望大家指點!

/*** 求兩路徑的相對路徑

* @param string $patha 路徑a

* @param string $pathb 路徑b

* @return string 相對路徑

*/function getrelativepath($patha,$pathb)else

}$str=$flag?str_repeat('../',count($arr_b)+1):'/';//沒有交集則為根目錄[linux情況,windows自己改]

return $str.join('/',$arr_a);//拼接並返回

}//test

$a ='/a/b/c/d/e.php';

$b ='/a/b/12/34/c.php';

echo '路徑a:'.$a;

echo '

路徑b:'.$b;

echo '

路徑a和路徑b的相對路徑為:';

echo getrelativepath($a,$b);

相對路徑表示方法

size large color red 我們使用 來表示上一級目錄,表示上上級的目錄,以此類推。下級目錄用 表示。例1 index.htm 中聯接的 import.jpg 應該怎樣表示呢?正確寫法 使用 img import.jpg 的相對路徑來定位檔案 例2 在此例中 index.htm 中聯接...

由絕對路徑求相對路徑

最近公司的乙個任務需要修改檔案原來的絕對路徑為相對路徑,於是寫了乙個方法 由絕對路徑獲得相對路徑 path2相對於path1的相對路徑 param path1 path1絕對路徑 param path2 path2絕對路徑 return 相對路徑 throws exception author pu...

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

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