php代码实现 两个目录之间的相对路径

/**
 * 获取两个路径之间的相对路径
 * @param $path1  路径1
 * @param $path2  路径2
 * @return 返回相对路径或者false(在同一个目录下)
 */
function relativePath($path1, $path2)
{
    // 将各自的路径(不包含文件)存放到array数组中
    $arr1 = explode(‘/‘, dirname($path1));
    $arr2 = explode(‘/‘, dirname($path2));

    // 遍历数组
    $len = count($arr2);
    for ($i = 0; $i < $len; $i++) {
        if ($arr1[$i] != $arr2[$i]) {
            break;
        }
    }

    if ($i < $len) {
        // 不是相同的目录,返回相对路径
        $return = array_fill(0, $len - $i, ".."); // 用‘..‘去填充相同的$len-$i个路径
        $relativePath = array_merge($return, array_slice($arr1, $i));  // 取出$i开始的不同的路径
        return implode(‘/‘, $relativePath);  // 数组变成字符串返回
    } else {
        // 相同的目录,直接返回false
        return false;
    }

}

dirname():去掉路径中的文件,只留目录
array_fill():
array_merge():
array_slice():
时间: 2024-07-29 06:38:50

php代码实现 两个目录之间的相对路径的相关文章

php 两个文件之间的相对路径的计算方法

php 两个文件之间的相对路径的计算方法 比如: 文件A 的路径是 /home/web/lib/img/cache.php 文件B的路径是 /home/web/api/img/show.php 那么.文件A相对于文件B的路径是 ../../lib/img/cache.php,即文件B 訪问 文件A的相对路径. function getRelativePath <?php /** 计算path1 相对于 path2 的路径,即在path2引用paht1的相对路径 * @param String $

windows server/windows同一系统下建立两个目录之间的映射关系

应用场景,如下: 当两个不同的项目共享同一个资源目录.同一个数据库时,由于两项目根目录不一样,再加上部分项目可能有入口重写规则限制了用户的访问权限. 因此,我们可以利用window 服务器给我们提供的mklink命令来建立两个项目资源目录的映射关系. 使用步骤: 1)进入cmd命令行模式 2)在cmd里面输入: mklink /J "D:\back1" "D:\back" 注意:执行的时候,back1 文件夹必须不存在:必须在NTFS 盘上进行才可以. 实质是,创建

Unison+inotify实现两个主机目录之间的数据双向同步

软件包的下载地址:http://down.51cto.com/data/2219727 1 目的:实现两个主机上面的目录实时同步数据,Unison支撑双向同步操纵,你既可以从A同步到B,也可以从B同步到A,这些都不须要额外的设定. 2 实验环境:server1 :  192.168.127.129     server2 : 192.168.127.130 同步的目录都是/data/nest 3 安装部署:两个服务器安装 unison 和ocaml,inotify ##编译安装ocaml,uni

两个linux之间复制文件及目录

Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同,cp 主要是用于在同一台电脑上,在不同的目录之间来回copy文件 scp 主要是在不同的Linux系统之间来回copy文件.scp即security cp,带有安全性的复制. 在两台linux机之间复制文件,我们打开其中任意一台即可,利用scp可实现两者之间文件目录的传输: 从本地服务器复制到远程服务器: (1) 复制文件: 命令格式: scp local_file [email protected]_

两个页面之间的通信

今天要给大家说的是两个不同页面之间的通信,通过一个拖拽demo来模拟: 首先,写好基础的拖拽代码: <script> window.onload = function() { var oDiv = document.getElementById('div'); oDiv.onmousedown = function(ev) { var ev = window.event || ev; var disX = ev.clientX - oDiv.offsetLeft; var disY = ev.

js实现的计算两个时间之间的时间差

js实现的计算两个时间之间的时间差:在实际应用中,需要计算两个时间点之间的差距,一般来说都是计算当前时间和一个指定时间点之间的差距,并且有时候需要精确到天.小时.分钟和秒,下面就简单介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.

javascript如何计算两个日期之间的时间间隔

javascript如何计算两个日期之间的时间间隔:有时候我们需要获取两个日期之间的时间间隔,下面是一段比较常用且兼容所有浏览器的代码,希望能够需要的带来一定帮助.代码如下: function NewDate(str) { str=str.split('-'); var date=new Date(); date.setUTCFullYear(str[0], str[1] - 1, str[2]); date.setUTCHours(0, 0, 0, 0); return date; } fun

ios 两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动

两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动 这是一个创建于 359 天前的主题,其中的信息可能已经有所发展或是发生改变. [联动] :两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动 前言 现在市面上有很多 app 都有联动功能,有的是两个 TableView 之间的联动,比如美团外卖,百度外卖,饿了么等等.有的是 TableView 与 CollectionView 之间的联动

用VBA计算两个日期之间的工作日(去掉周末两天)

最近公司HR和Finance想算员工的工作天数,想让我帮忙写些VBA,自己从网上找了下代码,自己再改改,以下来自网络. 计算两个日期之间的工作日,用VBA,因量大,最好用数组做 Sub kk() Dim arr, i&, j&, m& arr = Sheet2.Range("b3:f4") For i = 1 To UBound(arr) m = 0 For j = arr(i, 1) To arr(i, 3) If Weekday(j) <> 1