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 相关文章推荐
数据库查询记录php 多行多列显示
Aug 15 PHP
PHP模块 Memcached功能多于Memcache
Jun 14 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
写一段简单的PHP建立文件夹代码
Jan 06 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
php png失真的原因及解决办法
Nov 17 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实现指定字段的多维数组排序函数分享
2015/03/09 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
php app支付宝回调(异步通知)详解
2018/07/25 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
Python3模拟登录操作实例分析
2019/03/12 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
求职信内容怎么写
2014/05/26 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
三严三实心得体会范文
2014/10/13 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
河童之夏观后感
2015/06/11 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
了解Redis常见应用场景
2021/06/23 Redis
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server