상대경로법에 관한 작은 연구
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-25 09:02:37
如题,求两路径相对路径,求拍砖!
- /**
- * 求两路径的相对路径
- * @param string $patha 路径a
- * @param string $pathb 路径b
- * @author Joychao
- * @link http://www.joychao.cc
- * @return string 相对路径
- */
- function getRelativePath($patha,$pathb){
- $arr_a=explode('/',trim(dirname($patha),'/'));
- $arr_b=explode('/',trim(dirname($pathb),'/'));
- $n=min(count($arr_a),count($arr_b));//用最短路径来循环
- $flag=true;//标记位[标记是否完全没有交集]
- for($i=0;$i<$n;$i ){
- if($arr_a[$i]==$arr_b[$i]){
- unset($arr_a[$i],$arr_b[$i]);//去除前面相同的部分
- }else{
- if($i==0)
- $flag=false;//两路径没有交集
- break;//停止循环
- }
- }
- $str=$flag?str_repeat('../',count($arr_b) 1):'/';//没有交集则为根目录"/"[Linux情况,windows自己改]
- return $str.join('/',$arr_a);//拼接并返回
- }
- //TEST
- $a ='/a/b/c/d/e.php';
- $b ='/a/b/12/34/c.php';
- echo '路径a:'.$a;
- echo '
路径b:'.$b;
- echo '
路径a和路径b的相对路径(用c.php去访问e.php路径)为:';
- echo getRelativePath($a,$b);
- //-----OUTPUT-------------=
- 路径a:/a/b/c/d/e.php
- 路径b:/a/b/12/34/c.php
- 路径a和路径b的相对路径(用c.php去访问e.php路径)为:../../../c/d
复制代码
|
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2025-02-26 03:58:14
-
2025-02-26 03:38:10
-
2025-02-26 03:17:10
-
2025-02-26 02:49:09
-
2025-02-26 01:08:13
-
2025-02-26 00:46:10
-
2025-02-25 23:42:08
-
2025-02-25 22:50:13
-
2025-02-25 21:54:11
-
2025-02-25 20:45:11
최신 이슈
-
2025-03-21 13:39:34
-
2025-03-21 13:38:34
-
2025-03-21 13:37:19
-
2025-03-21 13:35:24
-
2025-03-21 13:34:32