Find the relative paths of two directories without limiting the path depth
- /**
-
- * Output the relative path of $b relative to $a ($a)
-
- * No limit on path depth, no optimization, just implementation of the function
-
- */
-
- function getPath($a, $b)
-
- {
-
- $aArr = explode('/', dirname($a));
-
- $bArr = explode ('/', dirname($b));
-
-
-
- $aLen = count($aArr);
-
- $bLen = count($bArr);
-
-
-
- $len = max($aLen, $bLen );
-
-
-
- $k = 0;
-
-
-
- for($i = 0; $i < $len; $i++)
-
- {
-
- if($k == 0)
-
- {
-
- if(isset($aArr[$i]) && ($aArr[$i] != $bArr[$i]))
-
- {
-
- $d .= '../';
-
-
-
- if( isset($bArr[$i]))
-
- {
-
- $nP[$i] = $bArr[$i];
-
- }
-
-
-
- $k = $k + 1;
-
- }
-
- }
-
- else
-
- {
-
- if(isset($aArr[$i]))
-
- {
-
- $d .= '../';
-
- }
-
- if(isset($bArr[$i] ))
-
- {
-
- $nP[$i] = $bArr[$i];
-
- }
-
- }
-
- }
-
-
-
- echo $d.implode('/', $nP);
-
- }
Copy code
|