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中进行身份认证
Oct 09 PHP
php Mysql日期和时间函数集合
Nov 16 PHP
PHP similar_text 字符串的相似性比较函数
May 26 PHP
PHP中session变量的销毁
Feb 27 PHP
php解析xml方法实例详解
May 12 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
基于php伪静态的实现方法解析
Jul 31 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
web方式ftp
2006/10/09 PHP
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
js控制input输入字符解析
2013/12/27 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
django模板结构优化的方法
2019/02/28 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
C++的几个面试题附答案
2016/08/03 面试题
优秀应届生推荐信
2013/11/09 职场文书
劳动模范事迹材料
2014/01/19 职场文书
学期自我评价
2014/01/27 职场文书
房屋委托书范本
2014/04/04 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
十二生肖观后感
2015/06/12 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL