PHP 计算相对路径

This post is written in Chinese. Please consider using Google Translate

在PHP编程中,经常会遇到相对路径的计算,然而标准库中没有提供相应的函数,我只好自己编写了一个函数用于计算相对路径。

<?
function pathconvert($cur,$absp)//当前文件,目标路径
{
    $cur = str_replace('\\','/',$cur);
    $absp = str_replace('\\','/',$absp);
    $sabsp=explode('/',$absp);
    $scur=explode('/',$cur);
    $la=count($sabsp)-1;
    $lc=count($scur)-1;
    $l=max($la,$lb);

    for ($i=0;$i<=$l;$i++)
    {
        if ($sabsp[$i]!=$scur[$i])
            break;
    }
    $k=$i-1;
    $path="";
    for ($i=1;$i<=($lc-$k-1);$i++)
        $path.="../";
    for ($i=$k+1;$i<=($la-1);$i++)
        $path.=$sabsp[$i]."/";
    $path.=$sabsp[$la];
    return $path;
}

$path=pathconvert("/home/web/test/a.php","/home/data/d.png");
// $path="../../data/d.png"
?>

Related posts