使用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中的字符串函数
Oct 09 PHP
PHP 进程锁定问题分析研究
Nov 24 PHP
《PHP编程最快明白》第三讲:php数组
Nov 01 PHP
2014过年倒计时示例
Jan 31 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
php实现的支持断点续传的文件下载类
Sep 23 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
Laravel如何实现自动加载类
Oct 14 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
php 301转向实现代码
2008/09/18 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
轻松实现php文件上传功能
2017/02/17 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
javascript数组使用调用方法汇总
2007/12/08 Javascript
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
如何开发出更好的JavaScript模块
2017/12/22 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
深入解析Python中的lambda表达式的用法
2015/08/28 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
Django Rest framework频率原理与限制
2019/07/26 Python
给我一面国旗 python帮你实现
2019/09/30 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
安全技术说明书
2014/05/09 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
2014年变电站工作总结
2014/12/19 职场文书
母亲节寄语大全
2015/02/27 职场文书
家电创业计划书
2019/08/05 职场文书
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python