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中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
示例详解Laravel的注册重构
Aug 14 PHP
Yii框架弹出框功能示例
Jan 07 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
PHP学习记录之数组函数
Jun 01 PHP
PHP get_html_translation_table()函数用法讲解
Feb 16 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
Laravel 连接(Join)示例
Oct 16 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
社区(php&amp;&amp;mysql)三
2006/10/09 PHP
discuz的php防止sql注入函数
2011/01/17 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
PHP curl使用实例
2015/07/02 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
在Python中使用SQLite的简单教程
2015/04/29 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
快速查询Python文档方法分享
2017/12/27 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
python列表推导式操作解析
2019/11/26 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
岗位廉政承诺书
2014/03/27 职场文书
导师工作推荐信范文
2014/05/17 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
心理健康教育主题班会
2015/08/13 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js