您的位置:首页 > 编程语言 > PHP开发

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

2017-08-30 14:39 537 查看
最近看到一个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<$arr1_cnt-1;$i++){
$str_path .='../';
}
$path2 = implode('/',$arr2);
return $str_path . $path2;
}
思路还是很简单,就是先找出相同的部分,然后计算文件1到相同的路径的相对路径,
再然后,拼接文件2相同路径以后的路径。

此文章已发表在本人博客:码客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 面试题 函数