相對路徑的計算問題

2022-08-10 07:06:14 字數 1223 閱讀 4538

在同乙個根目錄下有兩個目錄 

a的路徑為 '/a/b/c/d/e.php';

b的路徑為 '/a/b/12/34/c.php';

a相對於b的路徑為    ../../12/34

b相對於a的路徑為    ../../c/d

相對於誰就是以誰就是基準點,參照物, 通過基準點 找到另乙個的路徑 

<?php

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

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

/** * 相對路徑計算

* * @param [type] $a 基準點,參照物

* @param [type] $b

* @return void

*/function relative($a, $b) }

$relpath=$up.$path;

echo trim($relpath,'/').php_eol;

}relative($a, $b);

relative($b, $a);

以上**存在錯誤,下面為改進版

<?php

// a相對於b的路徑,是在 a裡面找到b;還是在b裡面找到a,這個首先要確定

// 這裡按照b裡面找到a的原則進行計算

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

$b='/a/b/1/2/b.php';

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

* @param string $a

* @param string $b

* @return string

*/function getrelativepath($a, $b)

// 計算b需要返回幾層可以到達相同路徑

$relativepath .= str_repeat('../', count($pathb) - $n);

// 計算a去掉相同路徑後的位址

$relativepath .= implode('/', array_splice($patha, $n));

// 返回a相對於b的路徑位址

return $relativepath;

}$res = getrelativepath($a, $b);

// $res = getrelativepath($b, $a);

var_dump($res);

參考 : 

php計算相對路徑

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

java 相對路徑問題

今天在改寫solr的時候想本地除錯,解決發現有一段使用相對路徑的 不能獲得這個檔案,報ioexception。檢查了一下檔案,的確在那個目錄,user.dir也已經指定到那個目錄了。可以通過new file getabsolutepath獲取當前路徑,也和user.dir想對應。百思不得其解,然後搜...

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

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