php常用自定义函数

1,写一个函数,算出两个文件的相对路径

有两种方法,一种是利用array的相关方法,如例1,另外一种是使用?:;运算符

先看第一种方法

 

function getrelativepath2($path1,$path2){
    $array1=explode('/',$path1);
    $array2=explode('/',$path2);
    //先获取路径中相同的部分
    $intersect = array_intersect_assoc($array1,$array2);
    $arrayrtn1 = array_fill(0,count($array2)-count($intersect)-1,'..');
    $arrayrtn2 = array_slice($array2,count($intersect));

    return implode('/',array_merge($arrayrtn1,$arrayrtn2));
}
View Code

 

方法解析:

这种方法采用了php自带的array的相关函数

 array_intersect_assoc($array1,$array2); //表示对比并获取array1和array2中相同的array,并返回这个array;

 array_fill(int $strat,int $size, string $str); //表示从$start开始填充$size个$str;

 array_slice(array $array , int $offset, int $length);//表示从$array中窃取从$offset开始$length个array中的数据,

 array_merge(array $array1,array $array2); //表示合并array1和array2

 implode(string $str,array $array);//表示返回一个用$str隔开的array字符串

接着看第二种方法

function getrelativepath($path1,$path2){
    $array1=explode('/',$path1);
    $array2=explode('/',$path2);
    $relationpath="";
    for($i=1;$i<count($array2)-1;$i++){
        $relationpath.=$array1[$i]==$array2[$i]?'../':$array2[$i].'/';
    }
    return $relationpath;
}    
获取相对路径

方法解析:

这种方法主要是用了?:;运算符来进行运算

容易出错点:

explode()函数返回时,第一个匹配/的是空格

转载于:https://www.cnblogs.com/ningheshutong/p/5275536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值