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 mysql索引问题
Jun 07 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 PHP
PHP中的session安全吗?
Jan 22 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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中与数组相关的函数
2007/03/22 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
jQuery hover 延时器实现代码
2011/03/12 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
python实现人人网登录示例分享
2014/01/19 Python
Python中实现常量(Const)功能
2015/01/28 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
python如何进行矩阵运算
2020/06/05 Python
基于Python实现简单学生管理系统
2020/07/24 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
实例代码讲解Python 线程池
2020/08/24 Python
python之语音识别speech模块
2020/09/09 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript