php计算两个文件相对路径的方法
本文实例讲述了php计算两个文件相对路径的方法。分享给大家供大家参考。具体如下:
一、问题:
写一个php函数算出两个文件的相对路径。例如$a="/a/b/c/d/e.php";$b="/a/b/12/34/c.php",B相对于A的相对路径是什么?
二、解决方法:
<?php
/**
*求$b相对于$a的相对路径
*@paramstring$a
*@paramstring$b
*@returnstring
*/
functiongetRelativePath($a,$b)
{
$patha=explode('/',$a);
$pathb=explode('/',$b);
$counta=count($patha)-1;
$countb=count($pathb)-1;
$path="../";
if($countb>$counta){
while($countb>$counta){
$path.="../";
$countb--;
}
}
//寻找第一个公共结点
for($i=$countb-1;$i>=0;){
if($patha[$i]!=$pathb[$i]){
$path.="../";
$i--;
}else{
//判断是否为真正的第一个公共结点,防止出现子目录重名情况
for($j=$i-1,$flag=1;$j>=0;$j--){
if($patha[$j]==$pathb[$j]){
continue;
}else{
$flag=0;
break;
}
}
if($flag)
break;
else
$i++;
}
}
for($i+=1;$i<=$counta;$i++){
$path.=$patha[$i]."/";
}
return$path;
}
$a="/a/c/d/e.php";
$b="/a/c.php";
$path=getRelativePath($a,$b);
echo$path;
希望本文所述对大家的php程序设计有所帮助。