php 计算两个文件的相对路径
2024-10-11 11:56:03
<?php
/**
* 计算两个文件的相对路径
*/
function relative_path($path1, $path2)
{
$arr1 = explode('/', dirname($path1));
$arr2 = explode('/', dirname($path2));
for ($i = 0, $len = count($arr2); $i < $len; $i++) {
if ($arr1[$i] != $arr2[$i]) {
break;
}
}
//不在用一个根目录下面
if ($i == 1) {
$return_path = array();
}
//在同一个根目录下
if ($i != 1 && $i < $len) {
$return_path = array_fill(0, $len - $i, "..");
}
#在同一个目录下
if ($i == $len) {
$return_path = array("./");
}
$return_path = array_merge($return_path, array_slice($arr1, $i));
return implode('/', $return_path);
}
//测试一下
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
echo relative_path($a, $b);
如果本文章已帮助到您!
最新文章
- Vector Tile
- 关于16年2月14日以后上传AppStore出现:Missing iOS Distribution signing identity for...的问题
- codeforce好地方啊 Bear and Elections *
- 自定义JSTL标签和函数库
- AbsListView.OnScrollListener
- Statspack安装配置及使用
- 读流testDemo
- MSDN(电驴)
- java-分页之页面分页
- 一个IO的传奇一生 系列 存储之道
- calltree查看工程代码中的函数调用关系
- Cocos2d-x 3.1.1 Lua演示样例 ActionEaseTest(动作)
- java的深复制与浅复制
- 人类科技的发展为什么会是加速度的(TRIZ方法再推荐)
- Windows 8.1下 MySQL绿色版安装配置与使用
- TeamView 无法捕捉画面问题的解决办法
- urls 管理
- EF设计模式之code first
- JDBC连接数据库:单线程、多线程、批处理插入数据的对比
- 关于jvm钩子 Runtime.getRuntime().addShutdownHook