资讯专栏INFORMATION COLUMN

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

woshicixide / 2416人阅读

摘要:最近看到一个的面试题,是在知道两个文件的绝对路径的情况下,求出文件相对于文件的相对路径。此文已在本人博客发表地址码客

最近看到一个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相同路径以后的路径。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25776.html

相关文章

  • Windows Server 2012 R2搭建 Apache+PHP+MYSQL环境

    摘要:打开窗口,转到目录。的意思是启动服务的时候跳过权限表认证。连接权限数据库。刷新权限必须步骤。重启方式重启方式在桌面开始菜单中选择运行,输入找到右键重启就可以了通过命令进行操作之前,需要将安装目录下的目录加入计算机的环境变量的里面。 环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php-5.6.35-Win32-VC11-x64下载地址:https://...

    dunizb 评论0 收藏0
  • Windows Server 2012 R2搭建 Apache+PHP+MYSQL环境

    摘要:打开窗口,转到目录。的意思是启动服务的时候跳过权限表认证。连接权限数据库。刷新权限必须步骤。重启方式重启方式在桌面开始菜单中选择运行,输入找到右键重启就可以了通过命令进行操作之前,需要将安装目录下的目录加入计算机的环境变量的里面。 环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php-5.6.35-Win32-VC11-x64下载地址:https://...

    yanest 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<