使用PHP计算两个路径的相对路径


Posted in PHP onJune 14, 2013
<html>
     <body>
         <?php
             function relativePath($aPath, $bPath) {
                 $aArr = explode('/', $aPath);    //explode函数用于切分字符串,返回切分后的数组,此处用'/'切分字符串
                 $bArr = explode('/', $bPath);
                 $aDiffToB = array_diff_assoc($aArr, $bArr);    //array_diff_assoc()用于获取A数组与B数组之间元素的差集,Key和Value都不相同视为不同元素,此处返回在A数组中且与B数组不相同的元素
                 $count = count($aDiffToB);                 $path = '';
                 for($i = 0; $i < $count - 1; $i++){
                     $path .= '../'; 
                 }
                 $path .= implode('/', $aDiffToB);    //implode()用于使用指定字符串连接数组元素,此处返回用'/'连接数组元素后的字符串
                 return $path;
             }
             echo relativePath('/a/b/c/d/a.php', '/a/b/1/2/b.php');
         ?>
     </body>
 </html>

页面输出
. ./. ./c/d/a.php
PHP 相关文章推荐
php中截取字符串支持utf-8
Jan 18 PHP
PHP chmod 函数与批量修改文件目录权限
May 10 PHP
php中用数组的方法设置cookies
Apr 21 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
PHP内核探索:变量存储与类型使用说明
Jan 30 PHP
php数组编码转换示例详解
Mar 11 PHP
mantis安装、配置和使用中的问题小结
Jul 14 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
深入解析PHP的引用计数机制
Jun 14 #PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 #PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Jun 14 #PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 #PHP
PHP操作Memcache实例介绍
Jun 14 #PHP
解析PHP处理换行符的问题 \r\n
Jun 13 #PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 #PHP
You might like
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
浅谈Python中带_的变量或函数命名
2017/12/04 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
python实现TCP文件传输
2020/03/20 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
初入社会应届生求职信
2013/11/18 职场文书
优秀应届生求职信
2014/06/16 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
网聊搭讪开场白
2015/05/28 职场文书
卡特教练观后感
2015/06/08 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
小组口号霸气押韵
2015/12/24 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL
Oracle 多表查询基本语法实例
2022/04/18 Oracle
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL