龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 新浪一道面试题:写一个函数,算出两个文件的相对路径。

时间:2014-07-22 02:09来源:网络整理 作者:网络 点击:
分享到:
新浪一道面试题:写一个函数,算出两个文件的相对路径。 参考了一些资料,写出不怎么完善的一个Function来计算目录的相对。最后得出的结果不知道是不是正确的。有时间大家看一下

参考了一些资料,写出不怎么完善的一个Function来计算目录的相对。最后得出的结果不知道是不是正确的。有时间大家看一下给一点意见,这里我有一点的那个! 呵呵

<?php
$a = 'aa/bb/cc/dd/a.php';
$b ='aa/bb/11/22/33/b.php';

//写一个函数,数出二个文件的相对路径。
function GetNum($variant,$variant2){
    $pth1 = null;
    $pth2 = null;
    $tmp = array();
    //分别判断路径下面的文件是不是存在.
    if(is_file($variant) && is_file($variant2)){
        $len1 = count($pth1 = explode('/',dirname($variant)));  
        $len2 = count($pth2 = explode('/',dirname($variant2))); 
        $maxlen = max($len1,$len2);
        for($i=1;$i<$maxlen;$i++){
            if($pth1[$i] != $pth2[$i] && isset($pth1[$i])){
                if(isset($pth2[$i])) $tmp[] = $pth2[$i];
            }else{
                $tmp[] = $pth2[$i];
                $pathe .= '../';
            }
        }
        return $pathe.implode('/',$tmp).'/'.basename($variant2);
    }else{
        return '路径不合法!';
    }

}

print_r(GetNum($a,$b));
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接