phpは2つのファイルの相対的な経路を求めます
8080 ワード
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);