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程序设计有所帮助。