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 相关文章推荐
Smarty安装配置方法
Apr 10 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
php实现的支持断点续传的文件下载类
Sep 23 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 PHP
php判断/计算闰年的方法小结【三种方法】
Jul 06 PHP
php适配器模式简单应用示例
Oct 23 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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中的时间处理
2006/10/09 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
降低PHP Redis内存占用
2017/03/23 PHP
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
小程序实现密码输入框
2020/11/16 Javascript
python用插值法绘制平滑曲线
2021/02/19 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
python集合的新增元素方法整理
2020/12/07 Python
携程英文网站:Trip.com
2017/02/07 全球购物
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
优秀的导游求职信范文
2014/04/06 职场文书
培训讲师岗位职责
2014/04/13 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
班级班风口号大全
2015/12/25 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
python异步的ASGI与Fast Api实现
2021/07/16 Python
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL