php 算法之实现相对路径的实例
这篇文章主要介绍了php 算法之实现相对路径的实例的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下。
php 算法之实现相对路径的实例,算出相对路径(相同的目录可以忽略用../ 或者 ./ 表示)实现代码:
- class Relatively{
- private function __construct(){
- }
- /**
- * 算出相对路径(相同的目录可以忽略用../ 或者 ./ 表示)
- * @param Strint $path1
- * @param Strint $path2
- * @return string
- */
- public static function relaroot($path1,$path2){
- $rearray=array();
- $arr1=explode('/', dirname($path1));
- $arr2=explode('/', dirname($path2));
- for($i=0,$len=count($arr2)-1;$i<$len;$i++){
- if($arr1[$i]!=$arr2[$i]){
- break;
- }
- if($i==1){
- $rearray=array();
- }
- if($i!=1 && $i<$len){
- $rearray=array_fill(0,$len-$i,'..');
- }
- if($i==$len){
- $rearray=array('./');
- }
- }
- $reroot=array_merge($rearray,array_slice($arr2, $i));
- return implode('/', $reroot);
- }
- }
- $path1="a/b/c/d/index.php";
- $path2="/a/b/12/34/index1.php";
- $a=Relatively::relaroot($path1, $path2);
- echo $a;