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中使用全局变量的几种方法
Jun 24 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php实现memcache缓存示例讲解
Dec 04 PHP
php的一个简单加密解密代码
Jan 14 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
PHP错误处理函数register_shutdown_function使用示例
Jul 03 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
JS判定是否原生方法
2013/07/22 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
python爬虫要用到的库总结
2020/07/28 Python
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
某公司面试题
2012/03/05 面试题
用Python写一个for循环的例子
2016/07/19 面试题
中学实习教师自我鉴定
2013/12/12 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
退学证明范本3篇
2014/10/29 职场文书
从事会计工作年限证明
2015/06/23 职场文书
高老头读书笔记
2015/06/30 职场文书