您的位置:首页 > 编程语言 > PHP开发

php计算两个文件的相对路径

2016-08-07 23:15 656 查看
<?php
function getRelativePath($a,$b){
$a_str=$b_str='';
for($i=0;$i<strlen($b);$i++){
if($a[$i]!=$b[$i]){
$a_str=substr($a,$i);
$b_str=substr($b,$i);
break;
}
}
$num=substr_count($b_str,"/");//计算/出现的次数
return str_repeat("../",$num).$a_str;
}
function getRelativePath2($urla,$urlb){
$a_arr=explode("/", trim($urla,"/"));//去掉左边的/并分割
$b_arr=explode("/", trim($urlb,"/"));
$count=0; //获取相同路径部分的个数
$num=min(count($a_arr),count($b_arr));
//去除相同的部分
for ($i=0;$i<$num;$i++){
if ($a_arr[$i]==$b_arr[$i]){
unset($a_arr[$i]);
$count++;
}
else{
break;
}
}
//相同部分用../替换
$relativepath=str_repeat("../", $count).implode("/", $a_arr);
return $relativepath;
}
$path1 = '/var/www/img/a.php';
$path2 = '/var/www/api/img/b.php';
echo(getRelativePath($path1,$path2)).'<br/>';//../../img/a.php
echo(getRelativePath2($path1,$path2)).'<br/>';//../../img/a.php
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: