计算路径a对于路径b的相对路径
来源:互联网 发布:网络灯亮着但是没网络 编辑:程序博客网 时间:2024/05/16 14:20
---CSDN的这个格式实在DT-_-
<?php/** * 计算路径a对于路径b的相对路径 * @author wusuopubupt * @date 2013-08-01 * */$dira = '/a/e.php';$dirb = '/a/b/f/e/g.php';//explode directions$arr_dira = explode('/', $dira);$arr_dirb = explode('/', $dirb);$count_a = count($arr_dira);$count_b = count($arr_dirb);$max = max($count_a,$count_b);$count =0;for ($i = 0 ; $i<$max ; $i++) { if(isset($arr_dira[0]) && isset($arr_dirb[0]) && $arr_dira[0] == $arr_dirb[0]){ array_shift($arr_dira); array_shift($arr_dirb); $count ++; }}$relative_path = str_repeat('../', $count_a - $count);echo $relative_path . implode('/', $arr_dirb) . "\n";?>
基本思路:先把a,b2个路径用/分割成数组,定义count = 0;从下标为0开始遍历2个数组,如果arr_a[0] == arr_b[0],那就用array_shift()删除数组第一个值,此时count+1,继续循环直到不相等,此时数组b只剩下a,b不相同的部分。用数组a的长度减去count,就是路径a 到达a,b共同路径的次数。比如2次,就用../../表示,然后,用/连接数组b,即可得到a相对于b的路径
参考:
1.启发的但是有错误的算法: http://istrone.com/?p=1165
2.array_pop 用法: http://www.php.net/manual/zh/function.array-pop.php
3.array_shift用法:http://www.php.net/manual/zh/function.array-shift.php
4.array_diff():计算2个数组的差集
array_intersect():交集
- 计算路径a对于路径b的相对路径
- 计算出$b相对于$a的相对路径
- 计算两路径的相对路径
- 计算两个路径的相对路径
- PHP 计算相对路径
- php 计算相对路径
- PHP计算相对路径
- PHP计算相对路径
- 计算相对路径
- 计算两个文件的相对路径(php)
- 计算两个文件的相对路径
- 计算两个文件的相对路径
- php 计算两个文件的相对路径
- php计算两个文件的相对路径
- 两文件的相对路径计算
- PHP 计算两个文件的相对路径
- 360笔试 给定a,b字符串 求出b相对于a的相对路径
- 360-2015暑假实习笔试 给定a,b字符串 求出b相对于a的相对路径
- _countof宏应用
- JQuery在循环中绑定事件
- jquery_EasyUI的学习
- java向mysql数据库中插入中文乱码问题解决
- oracle sql优化 四(转载)
- 计算路径a对于路径b的相对路径
- js date函数详解
- mac下修改mysql的默认字符集为utf8
- 鼠标指针的隐藏
- 多线程打印问题
- 外部网关协议RGP
- Python 不区分大小写对字符串列表排序
- JS判断数字/字母/中文
- JavaMail 发送邮件简单 Demo