This article illustrates how PHP calculates a two-file relative path. Share to everyone for your reference. Specifically as follows:
First, the question:
Write a PHP function to calculate the relative path of two files. For example $a= "/a/b/c/d/e.php"; $b = "/a/b/12/34/c.php", what is the relative path of B relative to a?
Second, the solution:
<?php/** * $b relative path relative to $a * @param string $a * @param string $b * @return string/function Getrelativepath ($a,
$b) {$patha = explode ('/', $a);
$PATHB = explode ('/', $b);
$counta = count ($patha)-1;
$COUNTB = count ($PATHB)-1; $path = ".
/"; if ($countb > $counta) {while ($countb > $counta) {$path. = ".
/";
$COUNTB--; //Find the first public node for ($i = $COUNTB-1; $i >= 0;) {if ($patha [$i]!= $PATHB [$i]) {$path. = ".
/";
$i--; else {//judge if it is the true first public node, prevent the duplicate name of the subdirectory for ($j = $i-1, $flag = 1; $j >= 0; $j-) {if ($patha [$j] = $
pathb[$j]) {continue;
else {$flag = 0;
Break
} if ($flag) break;
else $i + +; for ($i + = 1; $i <= $counta $i + +) {$path. = $patha [$i].
"/";
return $path;
} $a = "/a/c/d/e.php";
$b = "/a/c.php";
$path = Getrelativepath ($a, $b); echo $path;
I hope this article will help you with your PHP programming.