加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜新站长网 (https://www.0418zz.cn/)- 基础存储、数据处理、视频终端、内容创作、网络安全!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php 获取相对路径实例代码

发布时间:2022-06-17 09:15:30 所属栏目:PHP教程 来源:互联网
导读:function getRelativePath($a, $b) { $returnPath = array(dirname($b)); $arrA = explode(/, $a); $arrB = explode(/, $returnPath[0]); for ($n = 1, $len = count($arrB); $n $len; $n++) { if ($arrA[$n] != $arrB[$n]) { break; } } if ($len - $n 0) {
  function getRelativePath($a, $b) {    
      $returnPath = array(dirname($b));    
      $arrA = explode('/', $a);    
      $arrB = explode('/', $returnPath[0]);
      for ($n = 1, $len = count($arrB); $n < $len; $n++) {    
          if ($arrA[$n] != $arrB[$n]) {    
              break;    
          }     
      }    
      if ($len - $n > 0) {    
          $returnPath = array_merge($returnPath, array_fill(1, $len - $n, '..'));    
      }    
          
      $returnPath = array_merge($returnPath, array_slice($arrA, $n));    
      return implode('/', $returnPath);    
  }    
  var_dump(getRelativePath($a, $b));  
  //方法二
  $a = "/a/b/c/d/index.php";
  //echo basename($a,'.php');// 返回路径中文件名部分
  //echo dirname($a);
  $b = "/a/b/12/34/index2.php";
  function getRelativePath($path1,$path2){
      $p1 = dirname($path1);
      $p2 = dirname($path2);
      $arr1 = explode('/',$p1);
      $arr2 = explode('/',$p2);
      $diff_arr= array_diff($arr2,$arr1);    //计算差集 注意这里 是谁相对谁的  
      $inter_arr = array_intersect($arr1,$arr2);//计算交集
       
      $leng = count($inter_arr);    //长度是以交集的为准 即求..部分
      for($i=1;$i<$leng;$i++){
          $inter_arr[$i] = '..';     
      }
       
      $merge_arr = array_merge($inter_arr,$diff_arr);
      $fina_arr = implode('/',$merge_arr);
      return $fina_arr;//开源代码phpfensi.com
  }
  var_dump(getRelativePath($a,$b));
  //返回 string '/../../12/34' (length=12)
  //如果改成$diff_arr= array_diff($arr1,$arr2); 就返回string '/../../c/d (length=12) 

(编辑:阜新站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读