php绝对路径转相对路径
/** * 绝对路径转成相对 路径 * $path相对于$base的相对路径 * @param string $base * @param string $path * 思路:去除共同部分 */ function rela_pos($base, $path) { $base = explode('/', trim($base,'/')); $path = explode('/', trim($path,'/')); $ln1 = count($base); $ln2 = count($path); if ($ln1 > $ln2) { $i = 0; foreach ($path as $k => $v) { if ($v == $base[$k]) { $i++; }else{ break; } } } else { $i = 0; foreach ($base as $k1 => $v1) { if ($v1 == $path[$k1]) { $i++; }else{ break; } } } array_splice($base, 0, $i); array_splice($path, 0, $i); //当前两个路径有相同的根目录 $b_len=count($base)-1; $st=''; for($j=0;$j<$b_len;$j++){ $st.='../'; } return $st.implode('/',$path); } $a = '/c/a/b/c/d/t/w/e.php'; $b = '/a/b/12/34/c.php'; $res=rela_pos($a,$b); var_dump($res);
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步