PHP查找两个文件的相对路径,PHP 计算两个文件的相对路径

最近看到一个php的面试题,是在知道两个文件的绝对路径的情况下,求出文件1相对于文件2的相对路径。

这个问题,看似很简单,其实真简单,但却思考了很久才解决,变笨了!

下面我们我的方法,写出来,供大家参考,如果有不同意见或者问题,请留言给我:

/**

* [myRelativePath 计算文件2相对于文件1的相对路径]

* @param [string] $file1 [文件1的绝对路径]

* @param [string] $file2 [文件2的绝对路径]

* @return [string] [文件2相对于文件1的相对路径]

*/

function getRelativePath($file1,$file2){

//分别对两个文件路径进行分割

$file1_arr = explode("/", $file1);

$file2_arr = explode("/", $file2);

//计算file1文件不同于file2的部分(计算差集)

$arr1 = array_diff_assoc($file1_arr,$file2_arr);

$arr2 = array_diff_assoc($file2_arr,$file1_arr);

$arr1_cnt = count($arr1);

$str_path = "";

for($i=0;$i

$str_path .="../";

}

$path2 = implode("/",$arr2);

return $str_path . $path2;

}

思路还是很简单,就是先找出相同的部分,然后计算文件1到相同的路径的相对路径,

再然后,拼接文件2相同路径以后的路径。

此文已在本人博客发表地址:码客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值