php中如何计算两个文件之间的相对路径2014-08-31例如:文件A 的路径是 /home/web/lib/img/cache.php文件B的路径是 /home/web/api/img/show.php那么,文件A相对于文件B的路径是 ../../lib/img/cache.php,即文件B 访问 文件A的相对路径。function getRelativePath
<?php/** 计算path1 相对于 path2 的路径,即在path2引用paht1的相对路径 * @paramString $path1 * @paramString $path2 * @return String */function getRelativePath($path1, $path2){$arr1 = explode("/", $path1);$arr2 = explode("/", $path2);// 获取相同路径的部分$intersection = array_intersect_assoc($arr1, $arr2);$depth = 0;for($i=0,$len=count($intersection); $i<$len; $i++){if(!isset($intersection[$i])){$depth = $i;break;}}// 将path2的/ 转为 ../,path1获取后面的部分,然后合拼$tmp = array_merge(array_fill(0, count($arr2)-$depth-1, ".."), array_slice($arr1, $depth));$relativePath = implode("/", $tmp);return $relativePath;}?>demo
<?php$path1 = "/home/web/lib/img/cache.php";$path2 = "/home/web/api/img/show.php";echo getRelativePath($path1, $path2); // ../../lib/img/cache.php?>