首页 > 代码库 > php获取两个文件的相对路径

php获取两个文件的相对路径

例如:文件A 的路径是 /home/web/lib/img/cache.php

                文件B的路径是 /home/web/api/img/temp/show.php

                那么,文件A相对于文件B的路径是 ../../lib/img/cache.php

function getRelativePath($urla,$urlb){
	/*******第一步:获取两个文件的相同路径并去掉*****/
	//获取路径名
	$a_dirname=dirname($urla);   //$a_dirname=/home/web/lib/img/
	$b_dirname=dirname($urlb);   //$b_dirname=/home/web/api/img/temp
	//去掉左边的"/"
	$a_dirname=trim($urla,"/");
	$b_dirname=trim($urlb,"/");
//	$a_dirname=trim($a_dirname,"/");
//	$b_dirname=trim($b_dirname,"/");
	echo $a_dirname,",",$b_dirname."<br>";
	//分割路径名
	$a_arr=explode("/", $a_dirname);
	$b_arr=explode("/", $b_dirname);
	$count=0; //获取相同路径部分的个数
	$num=min(count($a_arr),count($b_arr));
	//去除相同的部分
	for ($i=0;$i<$num;$i++)
	{
		if ($a_arr[$i]==$b_arr[$i]){
			unset($a_arr[$i]);
			$count++;
		}
		else{
			break;
		}
	}
	//	print_r($a_arr);
	/******将相同部分用"../代替"并重新组合成相对路径******/
	$relativepath=str_repeat("../", $count).implode("/", $a_arr);
	echo $relativepath;
}
$urla="/home/web/lib/img/cache.php";
$urlb="/home/web/api/img/temp/show.php";
getRelativePath($urla,$urlb)