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

本文实例讲述了php计算两个文件相对路径方法。分享给大家供大家参考。具体如下:

一、问题:

写一个php函数算出两个文件的相对路径。例如$a=”/a/b/c/d/e.php”; $b=”/a/b/12/34/c.php”,B相对于A的相对路径是什么?

二、解决方法:

  <?php  /**   * 求$b相对于$a的相对路径   * @param string $a   * @param string $b   * @return string   */  function getRelativePath ($a, $b)  {    $patha = explode('/', $a);    $pathb = explode('/', $b);    $counta = count($patha) - 1;    $countb = count($pathb) - 1;    $path = "../";    if ($countb > $counta) {      while ($countb > $counta) {        $path .= "../";        $countb --;      }    }    // 寻找第一个公共结点    for ($i = $countb - 1; $i >= 0;) {      if ($patha[$i] != $pathb[$i]) {        $path .= "../";        $i --;      } else {  //判断是否为真正的第一个公共结点,防止出现子目录重名情况        for ($j = $i - 1, $flag = 1; $j >= 0; $j --) {          if ($patha[$j] == $pathb[$j]) {            continue;          } else {            $flag = 0;            break;          }        }        if ($flag)          break;        else          $i ++;      }    }    for ($i += 1; $i <= $counta; $i ++) {      $path .= $patha[$i] . "/";    }    return $path;  }  $a = "/a/c/d/e.php";  $b = "/a/c.php";  $path = getRelativePath($a, $b);  echo $path;

希望本文所述对大家的php程序设计有所帮助。

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

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服