zoukankan      html  css  js  c++  java
  • 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()函数返回时,第一个匹配/的是空格

  • 相关阅读:
    web总结
    工作总结
    python积累
    学习地图
    position:absolute绝对定位解读
    利用C++ RAII技术自动回收堆内存
    C++封装常用对象和对头文件探索
    String.split()方法你可能不知道的一面
    动态内存分配(new)和释放(delete)
    C#实现的异步Socket服务器
  • 原文地址:https://www.cnblogs.com/ningheshutong/p/5275536.html
Copyright © 2011-2022 走看看