一道求$b相对于$a的相对路径的php代码


Posted in PHP onAugust 08, 2010

php面试题的题目:
$a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; //计算出 $b 相对于 $a 的相对路径应该是 ../../c/d

php面试题的答案:

function getRelative($a,$b) { 
$arr = explode("/",$a); 
$brr = explode("/",$b); 
$c = count($arr)-2; 
$d = count($brr)-2; 
//之所以减二,一个是不在后面的文件名, 
//一个是数组的索引是从0开始的,比数组中的第一维的个数要小一 
$e = ($c>$d) ? $c:$d; 
$str1 = $str2 = ''; 
for ($j=0;$j<=$e;$j++) { 
$cur_a = isset($arr[$j]) ? $arr[$j] : ''; 
$cur_b = isset($brr[$j]) ? $brr[$j] : ''; 
if ($cur_a == $cur_b) { 
continue; 
} else { 
if ($j <= $c) 
{ 
$str1.='/'.$cur_a; 
} 
if ($j <= $d ) 
{ 
$str2.="../"; 
} 
} 
} 
return $str2.substr($str1,1,strlen($str1)); 
}
PHP 相关文章推荐
php SQL Injection with MySQL
Feb 27 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
php查找字符串出现次数的方法
Dec 01 PHP
php数组转成json格式的方法
Mar 09 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
PHP正则删除HTML代码中宽高样式的方法
Jun 12 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
PHP变量的作用范围实例讲解
Dec 22 PHP
PHP 实现缩略图
Mar 09 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 #PHP
PHP通过header实现文本文件下载的代码
Aug 08 #PHP
php下保存远程图片到本地的办法
Aug 08 #PHP
用PHP实现递归循环每一个目录
Aug 08 #PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 #PHP
PHP下对数组进行排序的函数
Aug 08 #PHP
PHP 冒泡排序算法的实现代码
Aug 08 #PHP
You might like
PHP开发大型项目的一点经验
2006/10/09 PHP
PHP如何透过ODBC来存取数据库
2006/10/09 PHP
php $_ENV为空的原因分析
2009/06/01 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Python类的多重继承问题深入分析
2014/11/09 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
Champion官网:美国冠军运动服装
2017/01/25 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
苏州园林导游词
2015/02/03 职场文书
人事任命通知
2015/04/20 职场文书
投资入股协议书
2016/03/22 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书