您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP面试题:写一个函数,算出两个文件的相对路径,4种方法

2024/3/9 10:52:19发布36次查看
//在网上搜了4种答案,结果都不一样,请问哪个是对的?还是都不对,您有好的解决办法吗?求//解!!! ?php header(content-type:text/html;charset=utf-8); $a='/a/b/c/d/e.php'; $b='/a/b/12/34/c.php'; function getrelativepath($a, $b) {///a/b/12/34/..
//在网上搜了4种答案,结果都不一样,请问哪个是对的?还是都不对,您有好的解决办法吗?求//解!!!
0) {
        $returnpath =array_merge($returnpath, array_fill(1, $len - $n, '..'));
    }
$returnpath = array_merge($returnpath,array_slice($arra, $n));
    return implode('/', $returnpath);
}
echo getrelativepath($a, $b);
//输出结果:/a/b/12/34/../../c/d/e.php
echo
;
function getrelativepath1($a,$b){
    $a_url = array(dirname($a));
    $b_url = array(dirname($b));
    $a_arr = explode('/',$a_url[0]);
    $b_arr = explode('/',$b_url[0]);
    $len    = count($a_arr);
    $art1 = '';
    $art2 = '';
    for($i=1;$i        if($a_arr[$i]$b_arr[$i]){
            $art1.= '../';
            $art2.= $a_arr[$i].'/';
        }
    }
    return $art1.$art2;
}
echo getrelativepath1($a, $b);
//输出结果:../../c/d/
echo ;
function getpathinfo( $a, $b ) {
    $a2array    = explode('/', $a);
    $b2array    = explode('/', $b);
    $pathinfo   = '';
    for( $i = 1; $i         $pathinfo.=$a2array[$i] == $b2array[$i] ? '../' : $b2array[$i].'/';
    }
    print_r($pathinfo);
}
getpathinfo($a, $b);
//输出结果:../../12/34/
echo ;
$path=;
$path1 = explode('/',dirname($a));
$path2 = explode('/',dirname($b));
$alen = count($path1);
$blen = count($path2);
$maxlen = max($alen,$blen);
for($i = 1; $i if($path1[$i] != $path2[$i] && isset($path1[$i])){
if(isset($path2[$i]))$burl[]=$path2[$i];
$path.= ../;
}else{
$burl[]=$path2[$i];
}
}
echo $path.implode('/',$burl).'/'.basename($b);
//输出结果:../../a/b/12/34/c.php
?>
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product