周末在家看面试题,没事儿写了个。

题目:

写一个函数,算出两个文件的相对路径
 如 $a = '/a/b/c/d/e.php';
   $b = '/a/b/12/34/c.php';
计算出 $b 相对于 $a 的相对路径应该是 ../../c/d

代码如下

<?php
$a = '/c/d/e.php';
$b = '/a/b/13/34/j/c.php'; $b = '/a/b/c/d/e.php';
$a = '/a/b/12/34/c.php'; function getRelativeDir($a, $b)
{
$dir_a = dirname($a);
$dir_b = dirname($b);
$dir_a_arr = explode('/', trim($dir_a, '/'));
$dir_b_arr = explode('/', trim($dir_b, '/'));
$i = 0;
print_r($dir_a_arr);
print_r($dir_b_arr);
while($dir_a_arr[$i] == $dir_b_arr[$i]) {
unset($dir_a_arr[$i]);
$i++;
}
$back = count($dir_b_arr) - $i;
$relative_path = $dir_b.'/';
while($back--) {
$relative_path .= '../';
}
$relative_path .= implode('/', $dir_a_arr);
return $relative_path;
} echo getRelativeDir($a, $b);

PHP获得两个绝对路径的相对路径的更多相关文章

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

    php 两个文件之间的相对路径的计算方法 比如: 文件A 的路径是 /home/web/lib/img/cache.php 文件B的路径是 /home/web/api/img/show.php 那么. ...

  2. PHP计算两个绝对路径的相对路径

    用PHP计算两个绝对路径的相对路径,该如何求呢? 先根据分隔符切割,然后查找相同 异同点,然后开始有相同点,从相同点结束为止开始拼接剩余部分,没有的话,到达根路径拼接整体. 截图如下: 代码如下: & ...

  3. Xcode 中的相对路径与绝对路径的相关设置

    近日闲来无事,与博客园中闲荡,忽至一烟霞照耀祥瑞蒸熏松竹翠秀奇花遍开的神奇之地.如此美景,令人心生向往,故而徜徉于其中不可自拔,独乐乐不如众乐乐: iOS开发之 相对路径与绝对路径 https://d ...

  4. https/相对路径,绝对路径

    1. htttps HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全 ...

  5. iOS开发之Xcode 相对路径与绝对路径

    iOS开发之 相对路径与绝对路径 https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/Xcod ...

  6. html里面的相对路径和绝对路径

    HTML有两种路径的写法:相对路径和绝对路径. 相对路径是在同一个目录的文件引用,如果源文件和引用文件在同一个目录里,直接写引用文件名即可. 如: a.html:     c:\test\menu\a ...

  7. Java获取路径方法&相对路径读取xml文件方法

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...

  8. linux—【绝对路径与相对路径】与【【文件基本操作】】(4)

    [绝对路径与相对路径] 绝对路径:我们在获得一个文件的时候,从根目录到二级到更多级目录都写全了, 终才找到这个文件,这种方式就是“绝对路径” 相对路径:目标文件与我本身文件的相对位置 当前目录:./  ...

  9. 【转】JSP中的相对路径和绝对路径

    1.首先明确两个概念: 服务器路径:形如:http://192.168.0.1/的路径 Web应用路径:形如:http://192.168.0.1/yourwebapp的路径 2.关于相对路径与绝对路 ...

  10. 关于相对路径和绝对路径及cd命令的使用

    cd (change directory) 目录    跳转到指定目录下 路径定义分为两种:绝对路径(absolute)和相对路径(relative) 绝对路径:从根目录(/)开始写去的文件名或目录名 ...

随机推荐

  1. Android IPC(inter-process Communitcation)

    Android IPC(inter-process Communitcation) http://www.cnblogs.com/imlucky/archive/2013/08/08/3246013. ...

  2. linux添加动态库搜索路径

    在有时运行程序出现动态库找不着的问题,而明明装了的.这时候可能是没有将相应的路径添加到系统中去. 具体说:cd /etc/ld.so.conf.d/ 可以发现里面有一堆*.conf的文件 我们要做的就 ...

  3. yii2 单页面增删改

    视图层 <style>#tab tr td{    height:40px;    width:100px;}</style><form action="ind ...

  4. 学习笔记:jquery1.9版本后废弃的函数和方法

    jQuery1.9+ 废弃的函数和方法 升级Jquery版本遇到的问题 (转载自:http://www.ppblog.cn/jquery1-9live.html  版权归原作者所有) jQuery1. ...

  5. css3控制内容的可选择性

    <!doctype html><html> <head> <meta charset="UTF-8"> <meta name= ...

  6. wcf之OperationContextScope

    作用:使用消息头向服务发送额外的信息. 1.客户端代码如下: namespace Client { class Program { static void Main(string[] args) { ...

  7. const char* <----- > string

    (1) const char*      <-----     string const char* const_txt_path=txt_path.c_str(); (2)  string  ...

  8. C++学习笔记35:函数模板

    函数模板 函数模板的目的 设计通用的函数,以适应广泛的数据型式 函数模板的定义格式 template<模板型式参数列表>返回值型式 函数名称(参数列表): 原型:template<c ...

  9. CSS 实现:两栏布局(等宽布局)

    ☊[实现要求]:两栏等宽布局 <div class="demo3"> <div class="col-1"></div> & ...

  10. Netty ChannelOption 解释

    Name Associated setter method "writeBufferHighWaterMark" 默认 64 * 1024(用法未知) "writeBuf ...