计算出两个文件的相对路径

?php
header('content-type:text/html;charset=utf-8');        

    function getRelativePath($path1, $path2){  
    $arr1 = explode('/', $path1);  
    //array(5) { [0]=> string(4) "home" [1]=> string(3) "web"
    //[2]=> string(3) "api" [3]=> string(3) "img" [4]=> string(8) "show.php" }
    $arr2 = explode('/', $path2);  
 
    // 获取相同路径的部分  
    $intersection = array_intersect_assoc($arr1, $arr2);  
    //array(3) { [0]=> string(4) "home" [1]=> string(3) "web" [3]=> string(3) "img" }
    $depth = 0;  
 
    for($i=0; $i<count($intersection); $i++){  
        if(!isset($intersection[$i])){  
            $depth = $i;  
            break;  
        }  
    }  
    // echo count($arr2);
    // var_dump(array_slice($arr1, $depth));die;array(3) { [0]=> string(3) "api" [1]=> string(3) "img" [2]=> string(8) "show.php" }
 // var_dump(array_fill(0, count($arr2)-$depth-1, '..'));
    // 将path2的/ 转为 ../,path1获取后面的部分,然后合拼  
    $tmp = array_merge(array_fill(0, count($arr2)-$depth-1, '..'), array_slice($arr1, $depth));  
 
    $relativePath = implode('/', $tmp);  
 
    echo $relativePath;  
 }
$a='home/web/api/img/show.php';
$b='home/web/lib/img/cache.php';
 getRelativePath($a,$b);
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值