<?php
//计算出两个文件的相对路径即path2相对于$path1的相对路径
// http://www.manongjc.com/article/1342.html
function get_relative_path($path1,$path2){$arr1 = explode(DIRECTORY_SEPARATOR,dirname($path1));$arr2 = explode(DIRECTORY_SEPARATOR,dirname($path2));$length = count($arr2);for($i = 0; $i < $length; $i++){if($arr1[$i] != $arr2[$i]){ //进行路径匹配break;}}if($i == 0){                    //根目录不同return '不在同一个目录中';}else if($i != 0 && $i < $length){        //在同一个个目录下$separator = array_fill(0, ($length-$i), '..');return(implode(DIRECTORY_SEPARATOR, array_merge($separator, array_slice($arr1, $i))));}else if($i == $length){                //路径完全相同 http://www.manongjc.com/article/1343.htmlreturn '.';}
}
$path1 = 'F:\Apache\www\temp\php_demo\demo.md'; //参照路径path1
$path2 = 'F:\Apache\www\temp\php_demo\demo.md';
$path3 = 'F:\Apache\www\temp\sd\ss.d\sdsfd';
$path4 = 'G:\FFOutput';
var_dump(get_relative_path($path1,$path2));
var_dump(get_relative_path($path1,$path3));
var_dump(get_relative_path($path1,$path4));
?>

转载于:https://www.cnblogs.com/myhomepages/p/6010041.html

php源码之计算两个文件的相对路径相关推荐

  1. Cesium源码解析一(terrain文件的加载、解析与渲染全过程梳理)

    快速导航(持续更新中-) Cesium源码解析一(terrain文件的加载.解析与渲染全过程梳理) Cesium源码解析二(metadataAvailability的含义) Cesium源码解析三(m ...

  2. Linux源码编译(一):从头文件说起

    Linux源码编译(一):从头文件说起 2013-04-10 14:37:24 分类: LINUX 在Linux体系结构章节中,主要让大家对Linux结构层次有一定的了解,没有过多的长篇大论,力求简结 ...

  3. c++ 退出函数_UCOSIII源码分析之——bsp_os.c文件分析

    点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 对于坚持做的人来说,每一次的"如期而至",其实并不需要什么"期待",也没有什么"悬念&quo ...

  4. [2013.7.5新鲜出炉] Ubuntu12.04下载Android4.0.1源码全过程----------------折腾两天,终于下好,附若干问题解决

    杂家算后知后觉了,学校里一直在做应用层开发,考虑到日后就业问题,这次决定研究源码和驱动,并进行编译.没想到就下载源码这一步折腾了我整整两天,期间遇到很多问题,哎,记录于此,希望日后再下源码的人不要再走 ...

  5. java class源码查看_eclipse查看class文件的源码

    eclipse查看class文件的源码: 1.网上下载jadClipse的jar包和执行文件jad.exe和 net.sf.jadclipse_3.3.0.jar. 2.把上面下载的jar包放在ecp ...

  6. 不同的内核源码编译出来的ko文件,区别到底是什么?

    之前一直在考虑,不同的内核源码编译出来的ko文件,区别到底是什么? 能不能不编译内核加载内核模块呢?最近逆向分析了linux内核ko模块的结构,事实证明,是可以的. 我在这里给大家分享一些我的心得. ...

  7. php算出文件相对路径,php计算两个文件相对路径的方法

    本文实例讲述了php计算两个文件相对路径的方法.分享给大家供大家参考.具体如下: 一.问题: 写一个php函数算出两个文件的相对路径.例如$a="/a/b/c/d/e.php"; ...

  8. 飞鸽传书最新C++源码:这两个消息钩子

    飞鸽传书最新C++源码:这两个消息钩子的 飞鸽传书 最新源码钩子函数极其相似就不分开说明,只说明一个消息钩子子程的流程.2.排除密码框.3.如果不是密码框,则钩子函数中对键盘消息进行记录,特别处理wm ...

  9. CloudCompare源码分析:读取ply文件

    CloudCompare源码分析_读取ply文件 写这些博客的原因,是因为打算好好研究一下点云的各种库的源码,其中比较知名的是PCL(point cloud library)和CC(CloudComp ...

最新文章

  1. jquery源码解析:jQuery数据缓存机制详解2
  2. java实现-两个栈实现一个队列和两个队列实现一个栈
  3. js 实时计算文本框字数限制
  4. java右移位_java中的左移 右移
  5. python三维图能画地图_Python地图绘制实操详解
  6. pfSense-2.4.4安装教程
  7. python tablewidget 颜色_更改QTableWidget的默认选择颜色,并使其半透明
  8. 数据挖掘应用案例:RFM模型分析与客户细分(转)
  9. Python+Selenium练习篇之4-利用link text定位元素
  10. 计算机组成原理——总线
  11. 机器学习处理信号分离_机器学习和深度学习现如今能应用在雷达信号处理,或者信号处理的哪些方面?...
  12. pytest系列教程——4、fixture详解
  13. Windows下Pycharm专业版2021.2以及Anaconda安装教程
  14. PHP网上购物商城系统 毕业设计参考
  15. Android夜神模拟器
  16. 人生感悟|写在四月底
  17. 抖音蓝V认证申请流程是怎么样的?
  18. 聊天机器人中的深度学习
  19. 如何选择适合你的兴趣爱好(六十三),养鱼
  20. 图漾相机-TM461-E2(TM460-E2) TOF相机

热门文章

  1. 寒假作业,2.25,G - iBoard
  2. 浏览器默认标签样式总结及css初始化程序(转)
  3. 微软和 SAP 扩展了云环境中的合作关系
  4. Juniper SRX IPsec *** base route CLI
  5. 张萍萍 计科高职13-1 201303014010 实践三结对项目
  6. Android px、dp、sp之间相互转换
  7. 话里话外:按单制造(MTO II)企业的资源瓶颈是怎么形成的?
  8. 自画菜单中如何触发MeasureItem事件的问题及解决办法
  9. 安装yarn 心得分享
  10. 对SQLSERVER进行性能监控