php获取两个文件的相对路径
程序员文章站
2022-05-09 23:10:15
...
例如:文件A 的路径是 /home/web/lib/img/cache.php
文件B的路径是 /home/web/api/img/temp/show.php
那么,文件A相对于文件B的路径是 ../../lib/img/cache.php
function getRelativePath($urla,$urlb){
/*******第一步:获取两个文件的相同路径并去掉*****/
//获取路径名
$a_dirname=dirname($urla); //$a_dirname=/home/web/lib/img/
$b_dirname=dirname($urlb); //$b_dirname=/home/web/api/img/temp
//去掉左边的"/"
$a_dirname=trim($urla,"/");
$b_dirname=trim($urlb,"/");
// $a_dirname=trim($a_dirname,"/");
// $b_dirname=trim($b_dirname,"/");
echo $a_dirname,",",$b_dirname."<br>";
//分割路径名
$a_arr=explode("/", $a_dirname);
$b_arr=explode("/", $b_dirname);
$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;
}
}
// print_r($a_arr);
/******将相同部分用"../代替"并重新组合成相对路径******/
$relativepath=str_repeat("../", $count).implode("/", $a_arr);
echo $relativepath;
}
$urla="/home/web/lib/img/cache.php";
$urlb="/home/web/api/img/temp/show.php";
getRelativePath($urla,$urlb)
转载于:https://blog.51cto.com/fengguangke/1535099
上一篇: 相对路径 VS绝对路径