?php
header('content-type:text/html;charset=utf-8');
function getRelativePath($path1, $path2){
$arr1 = explode('/', $path1);
//array(5) { [0]=> string(4) "home" [1]=> string(3) "web"
//[2]=> string(3) "api" [3]=> string(3) "img" [4]=> string(8) "show.php" }
$arr2 = explode('/', $path2);
// 获取相同路径的部分
$intersection = array_intersect_assoc($arr1, $arr2);
//array(3) { [0]=> string(4) "home" [1]=> string(3) "web" [3]=> string(3) "img" }
$depth = 0;
for($i=0; $i<count($intersection); $i++){
if(!isset($intersection[$i])){
$depth = $i;
break;
}
}
// echo count($arr2);
// var_dump(array_slice($arr1, $depth));die;array(3) { [0]=> string(3) "api" [1]=> string(3) "img" [2]=> string(8) "show.php" }
// var_dump(array_fill(0, count($arr2)-$depth-1, '..'));
// 将path2的/ 转为 ../,path1获取后面的部分,然后合拼
$tmp = array_merge(array_fill(0, count($arr2)-$depth-1, '..'), array_slice($arr1, $depth));
$relativePath = implode('/', $tmp);
echo $relativePath;
}
$a='home/web/api/img/show.php';
$b='home/web/lib/img/cache.php';
getRelativePath($a,$b);
?>
header('content-type:text/html;charset=utf-8');
function getRelativePath($path1, $path2){
$arr1 = explode('/', $path1);
//array(5) { [0]=> string(4) "home" [1]=> string(3) "web"
//[2]=> string(3) "api" [3]=> string(3) "img" [4]=> string(8) "show.php" }
$arr2 = explode('/', $path2);
// 获取相同路径的部分
$intersection = array_intersect_assoc($arr1, $arr2);
//array(3) { [0]=> string(4) "home" [1]=> string(3) "web" [3]=> string(3) "img" }
$depth = 0;
for($i=0; $i<count($intersection); $i++){
if(!isset($intersection[$i])){
$depth = $i;
break;
}
}
// echo count($arr2);
// var_dump(array_slice($arr1, $depth));die;array(3) { [0]=> string(3) "api" [1]=> string(3) "img" [2]=> string(8) "show.php" }
// var_dump(array_fill(0, count($arr2)-$depth-1, '..'));
// 将path2的/ 转为 ../,path1获取后面的部分,然后合拼
$tmp = array_merge(array_fill(0, count($arr2)-$depth-1, '..'), array_slice($arr1, $depth));
$relativePath = implode('/', $tmp);
echo $relativePath;
}
$a='home/web/api/img/show.php';
$b='home/web/lib/img/cache.php';
getRelativePath($a,$b);
?>