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 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
php基础知识:类与对象(2) 自动加载对象
Dec 13 PHP
PHP实时显示输出
Oct 02 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
PHP 一个随机字符串生成代码
May 26 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
ueditor 1.2.6 使用方法说明
Jul 24 PHP
使用swoole扩展php websocket示例
Feb 13 PHP
php建立Ftp连接的方法
Mar 07 PHP
php实现删除空目录的方法
Mar 16 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
thinkphp5实现无限级分类
Feb 18 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写入数据库类代码分享
2011/07/26 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
详解vue组件基础
2018/05/04 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
Python 深入理解yield
2008/09/06 Python
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
python中嵌套函数的实操步骤
2019/02/27 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
python如何构建mock接口服务
2021/01/28 Python
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
材料物理专业个人求职信
2013/12/15 职场文书
社区八一活动方案
2014/02/03 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
员工保密承诺书
2014/05/28 职场文书
经典禁毒标语
2014/06/16 职场文书
党员四风剖析材料
2014/08/27 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL