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

yipeiwu_com5年前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<=$e;$j++) {
$cur_a = isset($arr[$j]) ? $arr[$j] : '';
$cur_b = isset($brr[$j]) ? $brr[$j] : '';
if ($cur_a == $cur_b) {
continue;
} else {
if ($j <= $c)
{
$str1.='/'.$cur_a;
}
if ($j <= $d )
{
$str2.="../";
}
}
}
return $str2.substr($str1,1,strlen($str1));
}

相关文章

PHP基于Redis消息队列实现发布微博的方法

PHP基于Redis消息队列实现发布微博的方法

本文实例讲述了PHP基于Redis消息队列实现发布微博的方法。分享给大家供大家参考,具体如下: phpRedisAdmin :github地址  图形化管理界面 git c...

php实现斐波那契数列的简单写法

斐波那契数列是非常常见的一类数列,其数学定义为:F0=1,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。本文就用php来简单实现斐波那契数列,代码十分简洁易懂,...

PHP小偷程序的设计与实现方法详解

本文实例讲述了PHP小偷程序的设计与实现方法。分享给大家供大家参考,具体如下: 其实自己一直想做一个内涵图片的网站,以前的想法是做一个CMS,然后自己上传一些图片。。 开始真这么做的,没...

php使用strip_tags()去除html标签仍有空白的解决方法

本文实例讲述了php使用strip_tags()去除html标签仍有空白的解决方法。分享给大家供大家参考,具体如下: $subject = strip_tags($newsRs['c...

PHP计算加权平均数的方法

本文实例讲述了PHP计算加权平均数的方法。分享给大家供大家参考。具体如下: <form action="index.php" method="post"> 请输入你的课程...