<?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 根据两个绝对路径算出相对路径的函数
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。