php 算法之实现相对路径的实例


Posted in PHP onOctober 17, 2017

php 算法之实现相对路径的实例

算出相对路径(相同的目录可以忽略用../ 或者 ./ 表示)

实现代码:

class Relatively{ 
  private function __construct(){ 
     
  } 
  /** 
   * 算出相对路径(相同的目录可以忽略用../ 或者 ./ 表示) 
   * @param Strint $path1 
   * @param Strint $path2 
   * @return string 
   */ 
  public static function relaroot($path1,$path2){ 
    $rearray=array(); 
    $arr1=explode('/', dirname($path1)); 
    $arr2=explode('/', dirname($path2)); 
    for($i=0,$len=count($arr2)-1;$i<$len;$i++){ 
      if($arr1[$i]!=$arr2[$i]){ 
        break; 
      } 
      if($i==1){ 
        $rearray=array(); 
      } 
      if($i!=1 && $i<$len){ 
        $rearray=array_fill(0,$len-$i,'..'); 
      } 
      if($i==$len){ 
        $rearray=array('./'); 
      } 
    } 
    $reroot=array_merge($rearray,array_slice($arr2, $i)); 
    return implode('/', $reroot); 
  } 
} 
$path1="a/b/c/d/index.php"; 
$path2="/a/b/12/34/index1.php"; 
$a=Relatively::relaroot($path1, $path2); 
echo $a;

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
BBS(php &amp; mysql)完整版(一)
Oct 09 PHP
smarty实例教程
Nov 19 PHP
深入apache host的配置详解
Jun 09 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
php之curl设置超时实例
Nov 03 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
php+ajax登录跳转登录实现思路
Jul 31 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 PHP
php 二维数组快速排序算法的实现代码
Oct 17 #PHP
php 数据结构之链表队列
Oct 17 #PHP
PHP实现的贪婪算法实例
Oct 17 #PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 #PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 #PHP
基于PHP-FPM进程池探秘
Oct 17 #PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 #PHP
You might like
php 分页类 扩展代码
2009/06/11 PHP
zend framework多模块多布局配置
2011/02/26 PHP
php对大文件进行读取操作的实现代码
2013/01/23 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
详解php协程知识点
2018/09/21 PHP
javascript动态加载二
2012/08/22 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
浅谈Webpack自动化构建实践指南
2017/12/18 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
vue实现评论列表功能
2019/10/25 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python基础知识_浅谈用户交互
2017/05/31 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
python实现飞行棋游戏
2020/02/05 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
结构和类有什么异同
2012/07/16 面试题
如何客观的进行自我评价
2013/12/17 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
参观邀请函范文
2015/02/02 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技