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");