PHP面试题之[求相对路径]

2014 年 11 月 24 日4750

PHP面试题之[求相对路径]

发布时间:2010-04-05 22:24:38来源:PHP100中文网评论:】

前几天去X公司面试,最终因为薪资问题,告败,衰! 把笔试题拉出来研究下! 题目:写一个函数,算出两个文件的相对路径如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 计算出 $b 相对于 $a 的相对路径应该是 ../../c/d 答:?php function getRelative(

   

前几天去X公司面试,最终因为薪资问题,告败,衰!

把笔试题拉出来研究下!

题目:写一个函数,算出两个文件的相对路径如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 计算出 $b 相对于 $a 的相对路径应该是 ../../c/d

答:<?php

function getRelative($a , $b)

{

$arr_a = explode("/" , $a) ;

$brr_b = explode("/" , $b) ;

$i = 1 ;

while (true) {

if($arr_a[$i] == $brr_b[$i]) {

$i ++ ;

} else {

break ;

}

}

$c = count($brr_b) ;

$d = count($arr_a) ;

$e = ($c>$d)?$c:$d ;

$str1 = '' ;

$str2 = '' ;

for ($j = $i ;$j<$e ;$j++) {

if(isset($arr_a[$j])) {

if($j<($d-1)){

$str1 .= $arr_a[$j] . "/" ;

} else {

$str1 .= $arr_a[$j] ;

}

}

if(isset($brr_b[$j])) {

$str2 .= "../" ;

}

}

return $str2 . $str1 ;

}

$a = "/c/b/c/d/k/h/t/e.php" ;

$b = "/a/b/e/f/h.php" ;

$relative = getRelative($a,$b) ;

var_dump($relative);

?>

运行结果:string(34) "../../../../../c/b/c/d/k/h/t/e.php"

end up!

(责任编辑:PHP100er)

本文关键字:

上一篇:div 设置默认高度CSS代码(一句话)

下一篇:[PHP]猴子选大王

分享到:

最新资讯

热门内容

0 0