首页 > 开发 > PHP > 正文

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

2024-05-04 23:32:30
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php计算两个文件相对路径的方法,涉及php操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

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

一、问题:

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

二、解决方法:

 

 
  1. <?php 
  2. /** 
  3. * 求$b相对于$a的相对路径 
  4. * @param string $a 
  5. * @param string $b 
  6. * @return string 
  7. */ 
  8. function getRelativePath ($a$b
  9. $patha = explode('/'$a); 
  10. $pathb = explode('/'$b); 
  11. $counta = count($patha) - 1; 
  12. $countb = count($pathb) - 1; 
  13. $path = "../"
  14. if ($countb > $counta) { 
  15. while ($countb > $counta) { 
  16. $path .= "../"
  17. $countb --; 
  18. // 寻找第一个公共结点 
  19. for ($i = $countb - 1; $i >= 0;) { 
  20. if ($patha[$i] != $pathb[$i]) { 
  21. $path .= "../"
  22. $i --; 
  23. else { 
  24. //判断是否为真正的第一个公共结点,防止出现子目录重名情况 
  25. for ($j = $i - 1, $flag = 1; $j >= 0; $j --) { 
  26. if ($patha[$j] == $pathb[$j]) { 
  27. continue
  28. else { 
  29. $flag = 0; 
  30. break
  31. if ($flag
  32. break
  33. else 
  34. $i ++; 
  35. for ($i += 1; $i <= $counta$i ++) { 
  36. $path .= $patha[$i] . "/"
  37. return $path
  38. $a = "/a/c/d/e.php"
  39. $b = "/a/c.php"
  40. $path = getRelativePath($a$b); 
  41. echo $path

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表