php求2个文件相对路径

 1 function getpathinfo( $a, $b ) {
 2 
 3     $a2array = explode('/', $a);
 4 
 5     $b2array = explode('/', $b);
 6 
 7     $pathinfo = '';
 8 
 9     for( $i = 1; $i <= count($b2array)-2; $i++ ) {
10 
11         $pathinfo.=$a2array[$i] == $b2array[$i] ? '../' : $b2array[$i].'/';
12     }
13 print_R($pathinfo);
14 
15 }
16 $a = 'a/b/c/d/e.php';
17 $b = 'a/b/r/12/34/c.php';
18 getpathinfo($a, $b);
 1 function compara_path($path_a, $path_b) {
 2  //切割路径.
 3  $array_a =explode('/', $path_a);
 4  $array_b =explode('/', $path_b);
 5  //从数组中删除最后的文件,剩下的全为文件夹名称.
 6  $file_a =array_pop($array_a); //array_pop() 弹出并返回 array 数组的最后一个单元
 7  $file_b =array_pop($array_b);
 8  //子目录个数.
 9  $a_len =count($array_a);
10  $b_len =count($array_b);
11  //循环求出第几个目录不同.
12  for ( $i =0; $i < $a_len; $i++ ) {
13   if ($array_a[$i] != $array_b[$i] ) {
14       break;
15   }
16  }
17  //求出相对路径.
18  $com_path ="";
19  for ( $j =0; $j < $a_len - $i; $j++ ) {
20      $com_path .='../';
21  }
22  for ( $i; $i< $b_len; $i++ ) {
23      $com_path .=$array_b[$i] . '/';
24  }
25  $com_path .=$file_b;
26  return $com_path;
27 }
28 $a = 'a/b/c/d/e.php';
29 $b = 'a/b/r/12/34/c.php';
30 echo compara_path($a, $b);
原文地址:https://www.cnblogs.com/lh460795/p/2985771.html