<?php
$path_a = '/root/local/c/d/e.php';
$path_b = '/root/local/12/34/c.php';
$relative_path = getRelativelyPath($path_a, $path_b);
echo $relative_path;
//求$path_b相对于$path_a的相对路径
function getRelativelyPath($path_a, $path_b)
{
//拆分成数组
$path_a = explode('/', $path_a);
$path_b = explode('/', $path_b);
$path = '';
//将两个数组的索引重置
$path_c = array_values(array_diff($path_a, $path_b));
$path_d = array_values(array_diff($path_b, $path_a));
//去除掉path_a路径的文件名
array_pop($path_c);
//将path_a路径中的目录名替换为..
foreach ($path_c as &$v){
$v = '..';
}
//合并两个数组
$path_e = array_merge($path_c, $path_d);
//拼接路径
foreach ($path_e as $v){
$path .= $v . '/';
}
return rtrim($path, '/');
}
PHP 根据两个绝对路径算出相对路径的函数
最新推荐文章于 2021-04-21 21:55:56 发布