跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

一道求$b相对于$a的相对路径的php代码_PHP

php面试题的题目:

$a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; //计算出 $b 相对于 $a 的相对路径应该是 ../../c/d

php面试题的答案:

复制代码代码如下:function getRelative($a,$b) {$arr = explode("/",$a);$brr = explode("/",$b);$c = count($arr)-2;$d = count($brr)-2;//之所以减二,一个是不在后面的文件名,//一个是数组的索引是从0开始的,比数组中的第一维的个数要小一$e = ($c>$d) ? $c:$d;$str1 = $str2 = '';for ($j=0;$j$cur_a = isset($arr[$j]) ? $arr[$j] : '';$cur_b = isset($brr[$j]) ? $brr[$j] : '';if ($cur_a == $cur_b) {continue;} else {if ($j {$str1.='/'.$cur_a;}if ($j {$str2.="../";}}}return $str2.substr($str1,1,strlen($str1));}

相关文章