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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章