温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php如何计算两个文件相对路径

发布时间:2021-09-02 11:32:01 阅读:157 作者:小新 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章给大家分享的是有关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如何计算两个文件相对路径”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×