【分享】求相对路径方法小研究
来源:互联网 发布:恶搞视频配音软件 编辑:程序博客网 时间:2024/05/20 21:19
最近面试题扎堆,不少问题挺难的,今天研究了一下这个小问题,跟大家分享一下下:
题目如下:
看了很多答案,发现都有小问题,比如$a='/a/b/c/d/e/f/n.php';,$b='/a/b/c/34/gg/a/b/c/g.php';有不少答案都是采用循环数组找不同元素时用../来拼接解决,这样的后面有相同目录就会出错了。好了废话就不说了,奉上我写的方法,难免有不足哈,望大家指点!
题目如下:
写一个函数,算出两个文件的相对路径
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
计算出 $b 相对于 $a 的相对路径应该是 ../../c/d
看了很多答案,发现都有小问题,比如$a='/a/b/c/d/e/f/n.php';,$b='/a/b/c/34/gg/a/b/c/g.php';有不少答案都是采用循环数组找不同元素时用../来拼接解决,这样的后面有相同目录就会出错了。好了废话就不说了,奉上我写的方法,难免有不足哈,望大家指点!
- /**
- * 求两路径的相对路径
- * @param string $patha 路径a
- * @param string $pathb 路径b
- * @return string 相对路径
- */
- function getRelativePath($patha,$pathb){
- $arr_a=explode('/',trim(dirname($patha),'/'));
- $arr_b=explode('/',trim(dirname($pathb),'/'));
- $n=min(count($arr_a),count($arr_b));//用最短路径来循环
- $flag=true;//标记位[标记是否完全没有交集]
- for($i=0;$i<$n;$i++){
- if($arr_a[$i]==$arr_b[$i]){
- unset($arr_a[$i],$arr_b[$i]);//去除前面相同的部分
- }else{
- if($i==0)
- $flag=false;//两路径没有交集
- break;//停止循环
- }
- }
- $str=$flag?str_repeat('../',count($arr_b)+1):'/';//没有交集则为根目录[Linux情况,windows自己改]
- return $str.join('/',$arr_a);//拼接并返回
- }
- //TEST
- $a ='/a/b/c/d/e.php';
- $b ='/a/b/12/34/c.php';
- echo '路径a:'.$a;
- echo '<br />路径b:'.$b;
- echo '<br />路径a和路径b的相对路径为:';
- echo getRelativePath($a,$b);
原文地址:http://bbs.lampbrother.net/read-htm-tid-117695.html
0
上一篇:睡觉时间+1=睡着时间
下一篇:MySQL数据库MyISAM和InnoDB存储引擎的比较
相关热门文章
- 自定义u-boot启动logo的方法...
- C++ 将unsigned char数组 ...
- 蚊香不管用 合肥“捕蚊哥”土...
- 教你三招清洁家里的木地板...
- 《数字技术与应用》征稿**投稿...
- IP Sec VPN与NAT破镜重圆
- 网站导航
- GoAgent图文设置教程
- UT2.0正式版下载
- tomcat6.0配置(含配置视频下载...
- 大家都是用什么来管理hadoop集...
- 网站被人挂了吗,添加了些程序...
- Nginx如何保证不走宕机的那个...
- 大家谈谈MYSQL客户端和服务器...
- 以下代码运行后为何会输出5?...
给主人留下些什么吧!~~
评论热议
- 【分享】求相对路径方法小研究
- php求相对路径
- 求相对路径的函数
- 由绝对路径求相对路径
- 相对路径表示方法
- ImageIcon图标文件相对路径研究总结
- JSP的相对路径深入研究
- JSP的相对路径深入研究!
- JSP的相对路径深入研究
- 请求url的相对路径研究
- JSP的相对路径--深入研究
- ImageIcon图标文件相对路径研究总结
- 相对路径的取得方法
- HTML相对路径表示方法
- html相对路径表示方法
- 相对路径的表示方法
- HTML 相对路径表示方法
- PHP面试题之[求相对路径]
- 上传思维导图笔记两张,请多指教
- 春天里的一封战地日记
- lucene 技术
- 夜间杂感
- 睡觉时间+1=睡着时间
- 【分享】求相对路径方法小研究
- MySQL数据库MyISAM和InnoDB存储引擎的比较
- 网页布局处女作完成 (欢迎高手拍砖,菜鸟讨论)
- 关于Everyman睡觉法的使用心得(仅两天)
- 【分享】Js跨域及解决方法
- How can I remove a background-image attribute?
- kfs总结
- 小感悟
- JIG(即时绘图)-多实体即时绘图-DrawJig(拖拽即时绘图)
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
什么是连锁
正规连锁
连锁鲜花店
咖啡店连锁
连锁批发
广告连锁
连锁学校
包子铺连锁
自愿连锁销售
2018年全国连锁奶茶店排行榜
黑河连锁项目排行榜
阜阳连锁项目排行榜
海口连锁项目排行榜
吉林连锁项目排行
衡水连锁项目排行
福州连锁项目排行榜
桂林连锁项目排行榜
安徽合肥连锁经营
连锁经营模式
合肥连锁经营业
自愿连锁经营
自愿经营连锁业
连锁超市排名
连锁超市招商
连锁经营培训
幼儿园连锁品牌
连锁干洗店利润
超市连锁排名
麻辣烫连锁品牌
全国连锁理发店
便利店连锁品牌
连锁经营可行性报告
女人100内衣连锁
连弧铭文镜
连长
珏慧跟连长
连长工资
连长媳妇
连长管多少人
连长是什么级别
十个连长一个班全集