一道求$b相对于$a的相对路径的php代码
作者:bea
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; //之
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));
}
有用 | 无用
代码如下:
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));
}
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- ThinkPHP中实例Model方法的区别说明
- PHP 数组基础知识小结
- 一个简单php扩展介绍与开发教程
- php checkbox 取值详细说明
- PHP 截取字符串专题集合
- php 过滤器实现代码
- PHP对字符串的递增运算分析
- PHP原理之异常机制深入分析
- php include加载文件两种方式效率比较
- 将一维或多维的数组连接成一个字符串的php代码
- php简单提示框alert封装函数
- php递归实现无限分类生成下拉列表的函数
- php用数组返回无限分类的列表数据的代码
- php自定义函数之递归删除文件及目录
- php自动获取目录下的模板的代码
- php下删除一篇文章生成的多个静态页面
- php中定义网站根目录的常用方法
- 删除无限分类并同时删除它下面的所有子分类的方法
- 一道关于php变量引用的面试题