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

前端之家收集整理的这篇文章主要介绍了一道求$b相对于$a的相对路径的php代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP面试题的题目: @H_301_1@$a = '/a/b/c/d/e.PHP'; $b = '/a/b/12/34/c.PHP'; //计算出 $b 相对于 $a 的相对路径应该是 ../../c/d PHP面试题的答案: @H_301_1@

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

猜你在找的PHP相关文章