首页 > PHP开发 > php 计算两个文件之间的相对路径方法

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

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

例如:

文件A 的路径是 /home/web/lib/img/cache.php

文件B的路径是 /home/web/api/img/show.php

那么,文件A相对于文件B的路径是 ../../lib/img/cache.php,即文件B 访问 文件A的相对路径。

function getRelativePath

[php]

  1. <?php  
  2. /** 计算path1 相对于 path2 的路径,即在path2引用paht1的相对路径 
  3. * @param  String $path1 
  4. * @param  String $path2 
  5. * @return String 
  6. */  
  7. function getRelativePath($path1$path2){  
  8.     $arr1 = explode('/'$path1);  
  9.     $arr2 = explode('/'$path2);  
  10.   
  11.     // 获取相同路径的部分  
  12.     $intersection = array_intersect_assoc($arr1$arr2);  
  13.   
  14.     $depth = 0;  
  15.   
  16.     for($i=0,$len=count($intersection); $i<$len$i++){  
  17.         if(!isset($intersection[$i])){  
  18.             $depth = $i;  
  19.             break;  
  20.         }  
  21.     }  
  22.   
  23.     // 将path2的/ 转为 ../,path1获取后面的部分,然后合拼  
  24.     $tmp = array_merge(array_fill(0, count($arr2)-$depth-1, '..'), array_slice($arr1$depth));  
  25.   
  26.     $relativePath = implode('/'$tmp);  
  27.   
  28.     return $relativePath;  
  29. }  
  30. ?>  


demo

[php]

  1. <?php  
  2. $path1 = '/home/web/lib/img/cache.php';  
  3. $path2 = '/home/web/api/img/show.php';  
  4.   
  5. echo getRelativePath($path1$path2); // ../../lib/img/cache.php  
  6. ?>  

本文固定链接: http://www.devba.com/index.php/archives/5635.html | 开发吧

报歉!评论已关闭.