php计算两个文件相对路径的方法

2025-05-29 0 84

本文实例讲述了php计算两个文件相对路径的方法。分享给大家供大家参考。具体如下:

一、问题:

写一个php函数算出两个文件的相对路径。例如$a="/a/b/c/d/e.php"; $b="/a/b/12/34/c.php",B相对于A的相对路径是什么?

二、解决方法:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50
<?php

/**

* 求$b相对于$a的相对路径

* @param string $a

* @param string $b

* @return string

*/

function getRelativePath ($a, $b)

{

$patha = explode('/', $a);

$pathb = explode('/', $b);

$counta = count($patha) - 1;

$countb = count($pathb) - 1;

$path = "../";

if ($countb > $counta) {

while ($countb > $counta) {

$path .= "../";

$countb --;

}

}

// 寻找第一个公共结点

for ($i = $countb - 1; $i >= 0;) {

if ($patha[$i] != $pathb[$i]) {

$path .= "../";

$i --;

} else {

//判断是否为真正的第一个公共结点,防止出现子目录重名情况

for ($j = $i - 1, $flag = 1; $j >= 0; $j --) {

if ($patha[$j] == $pathb[$j]) {

continue;

} else {

$flag = 0;

break;

}

}

if ($flag)

break;

else

$i ++;

}

}

for ($i += 1; $i <= $counta; $i ++) {

$path .= $patha[$i] . "/";

}

return $path;

}

$a = "/a/c/d/e.php";

$b = "/a/c.php";

$path = getRelativePath($a, $b);

echo $path;

希望本文所述对大家的php程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php计算两个文件相对路径的方法 https://www.kuaiidc.com/102697.html

相关文章

发表评论
暂无评论