计算两个文件相对路径

/*
*计算两个文件相对路径
 */
function relative_path($path1,$path2) {
    $arr1 = explode(‘/‘,dirname($path1));
    $arr2 = explode(‘/‘,dirname($path2));
    for($i=0,$len = count($arr2);$i < $len;$i++) {
        if($arr1[$i] != $arr2[$i]) {
            break;
        }
        #不在同一个根目录下
        var_dump($len - $i);
        if($i == 1) {
            $return_path = array();
        }
        #在同一个根目录下
        if($i != 1 && $i < $len) {
            $return_path = array_fill(0,$len - $i,"..");
        }
        #在同一个目录下
        if($i == $len) {
            $return_path = array(‘./‘);
        }
        $return_path = array_merge($return_path,array_slice($arr1, $i));
        return implode(‘/‘, $return_path);
    }

}
    $a = ‘/a/b/c/d/e.php‘;
    $b = ‘/a/b/12/34/c.php‘;
    $c = ‘/e/b/c/d/f.php‘;
    $d = ‘/a/b/c/d/g.php‘;
    relative_path($a,$b);
    //echo relative_path($a,$b);//  ../../../../..//a/b/c/d
    echo "<br/>";
    //echo relative_path($a,$c);//  ../../../../..//a/b/c/d
    echo "<br/>";
    //echo relative_path($a,$d);//  ../../../../..//a/b/c/d
    echo "<br/>";

时间: 2024-08-09 14:36:11

计算两个文件相对路径的相关文章

Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.Simple

从键盘接收两个文件夹路径,把其中一个文件夹(包含内容),拷贝到另一个文件夹中

package cn.it.text; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Scanner; /* * 1.从键盘接收两个文件夹路径,把其中一个文件夹(包含内容) * 拷贝到另一个文件

Linux shell 计算两个文件的并集、交集、差集

假设我们现在有两个文件 a.txt .b.txt a.txt 中的内容如下: a c 1 3 d 4 b.txt 中的内容如下: a b e 2 1 5 # Example 01 计算并集: [[email protected]_81_181_centos ~]# sort -u a.txt b.txt 1 2 3 4 5 a b c d e [[email protected]_81_181_centos ~]# # Exmaple 02 计算交集: [[email protected]_81

php计算两个文件夹的相对路径

<?php include '../../c/e/one.php'; echo "\n"; echo 'this is two'; echo "\n"; $a = "/a/b/c/d/e.php"; $b = "/a/b/12/34/c.php"; $cnta = strlen($a); $cntb = strlen($b); $cnt = max($cnta,$cntb); echo $cnt,"\n&quo

PHP两个文件的相对路径

1 /** 2 * relativePath 计算两个文件的相对路径 3 * @param file1 参作为考路径 4 * @param file2 相对于$file1的路径 5 */ 6 function relativePath($file1, $file2){ 7 $aArr = explode('/', $file1); //explode函数用于切分字符串,返回切分后的数组,此处用'/'切分字符串 8 $bArr = explode('/', $file2); 9 10 $aDiff

使用JAVA实现比较两个文件夹下的文件新增和修改情况,并复制到新的目录(实现增量更新项目)

- 0x00 前言 之前工作的时候,经常会有客户提交BUG或者新增一个功能等需求.于是我就会在我本地修改代码,然后再打包替换客户的项目.比较麻烦的是,每次更新都需要去SVN看看都改了哪些文件,新增了哪些文件,一个一个去找,然后打包,给客户更新,有些时候一不小心就漏了或者搞错了,非常的烦.其实我一直都想做的事情就是,写一个程序,让程序去实现对比新旧两个项目,然后把新的项目多出来的文件或者变更过的文件复制出来,这样就能省去我好多工作,主要是不用人工一个个的去比对.. 太烦了. - 0x01 思路 1

.NET CORE下最快比较两个文件内容是否相同的方法

最近项目有个需求,需要比较两个任意大小文件的内容是否相同,要求如下: 项目是.NET CORE,所以使用C#进行编写比较方法 文件大小任意,所以不能将文件内容全部读入到内存中进行比较(更专业点说,需要使用非缓存的比较方式) 不依赖第三方库 越快越好 为了选出最优的解决方案,我搭建了一个简单的命令行工程,准备了两个大小为912MB的文件,并且这两个文件内容完全相同.在本文的最后,你可以看到该工程的Main方法的代码. 下面我们开始尝试各个比较方法,选出最优的解决方案: 比较两个文件是否完全相同,首

IO练习 两个文件夹进行copy(含子目录)

1 //从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中 2 @Test 3 public void t6(){ 4 //1) 接受两个文件夹路径 5 //1.创建一个 字符缓冲流 6 7 BufferedReader br = null; 8 try { 9 br = new BufferedReader(new InputStreamReader(System.in)); 10 System.out.println("请输入第一个文件夹路径"); 11

铁乐学python_md5校验两个文件的一致性

# 写一个函数,参数是两个文件的路径 # 返回的结果是T/F # 判断两个文件的md5值是否相同 import hashlib def diff_md5(file1,file2): def chick_md5(file): md5 = hashlib.md5() with open(file, 'rb') as f: while True: content = f.read(8192) if content: md5.update(content) else: break return md5.