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

 更新时间:2015年03月14日 11:27:19   作者:feiwen  
这篇文章主要介绍了php计算两个文件相对路径的方法,涉及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面向对象程序设计继承用法简单示例

    PHP面向对象程序设计继承用法简单示例

    这篇文章主要介绍了PHP面向对象程序设计继承用法,结合具体实例形式分析了php面向对象程序设计中继承的相关概念、原理、使用技巧与相关操作注意事项,需要的朋友可以参考下
    2018-12-12
  • CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解

    CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解

    CodeIgniter 是一个小巧但功能强大的 PHP 框架。这篇文章主要介绍了CI框架(ajax分页,全选,反选,不选,批量删除)完整代码,需要的朋友可以参考下
    2016-11-11
  • 如何使用SublimeText3配置 PHP IDE环境

    如何使用SublimeText3配置 PHP IDE环境

    这篇文章主要介绍了如何使用SublimeText3配置 PHP IDE环境,并使用Xdebug进行调试,喜欢使用SublimeText的同学,可以参考下
    2021-04-04
  • PHP7标量类型declare用法实例分析

    PHP7标量类型declare用法实例分析

    这篇文章主要介绍了PHP7标量类型declare用法,结合实例形式分析了PHP7中标量类型declare的功能、特性与相关使用技巧,需要的朋友可以参考下
    2016-09-09
  • PHP通用检测函数集合

    PHP通用检测函数集合

    这些函数都要测试才能使用,不保证个个都能使用,很多好的代码函数都可以在phpcms,dedecms,帝国cms中查找。
    2011-02-02
  • PHP生成器功能与用法实例分析

    PHP生成器功能与用法实例分析

    这篇文章主要介绍了PHP生成器功能与用法,结合实例形式分析了PHP生成器的概念、功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-03-03
  • php实现发送微信模板消息的方法

    php实现发送微信模板消息的方法

    这篇文章主要介绍了php实现发送微信模板消息的方法,实例分析了php操作curl及自定义模板消息的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP实现防盗链的方法分析

    PHP实现防盗链的方法分析

    这篇文章主要介绍了PHP实现防盗链的方法,结合实例形式分析了php防盗链所涉及的相关技术与具体实现技巧,需要的朋友可以参考下
    2017-07-07
  • PHP yield关键字功能与用法分析

    PHP yield关键字功能与用法分析

    这篇文章主要介绍了PHP yield关键字功能与用法,结合实例形式分析了php5.5新增的yield关键字功能与相关使用技巧,需要的朋友可以参考下
    2019-01-01
  • php上传功能集后缀名判断和随机命名(强力推荐)

    php上传功能集后缀名判断和随机命名(强力推荐)

    本篇文章给大家分享php上传功能集后缀名判断和随机命名,代码写的简单易懂,感兴趣的朋友快来参考下吧
    2015-09-09

最新评论