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

yipeiwu_com6年前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));
}

相关文章

连接到txt文本的超链接,不直接打开而是点击后下载的处理方法

服务器端两种处理方法,一个是apache或者iis or tomcat等服务器中进行设置,或者在程序中指定发送类型。 该信息属于http头部信息,php有直接进行头部信息操作的函数。 p...

php字符串分割函数explode的实例代码

array explode (string $separator, string $string [, int $limit]) 该函数有3个参数,第一个参数$separator设置一个...

PHP 字符串正则替换函数preg_replace使用说明

1. preg_replace() $msg = preg_replace("/<style>.+<\/style>/is", "", $msg); -----删...

php准确获取文件MIME类型的方法

本文实例讲述了php准确获取文件MIME类型的方法。分享给大家供大家参考。具体实现方法如下: <?php $mime = array ( //a...

js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析

首先是js限制checkbbox勾选个数的代码:复制代码 代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitiona...