php 求相对路径方法小研究
求相对路径方法小研究 如题,求两路径相对路径,求拍砖!**[PHP]代码**[代码片段(38行)]
如题,求两路径相对路径,求拍砖!
[PHP]代码
/** * 求两路径的相对路径 * @param string $patha 路径a * @param string $pathb 路径b * @author Joychao <joy@joychao.cc> * @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 '<br />路径b:'.$b; echo '<br />路径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
- 上一篇:延迟加载 虚代理实现延迟加载
- 下一篇:php 创建可读性的随即字符串
精彩图集
精彩文章