1 /**
2 * relativePath 计算两个文件的相对路径
3 * @param file1 参作为考路径
4 * @param file2 相对于$file1的路径
5 */
6 function relativePath($file1, $file2){
7 $aArr = explode('/', $file1); //explode函数用于切分字符串,返回切分后的数组,此处用'/'切分字符串
8 $bArr = explode('/', $file2);
9
10 $aDiffToB = array_diff_assoc($aArr, $bArr); //array_diff_assoc()用于获取A数组于B数组之间元素的差集,key和value都不相同视为不同元素,此处返回在A数组中且于B数组不相同的元素。
11 $count = count($aDiffToB);
12 var_dump($aDiffToB);
13 $path = '';
14
15 for($i = 0; $i < $count - 1; $i++){
16 $path .= '../';
17 }
18
19 $path .= implode('/', $aDiffToB);
20 //implode()用于使用指定字符串连接数组元素,此处返回用'/'连接数组元素后的字符串
21
22 return $path;
23 }
24
25 echo relativePath("/a/b/12/34/c.php", "/a/b/c/d/e.php");