php絕對路徑轉相對路徑


/**
 * 絕對路徑轉成相對 路徑
 * $path相對於$base的相對路徑
 * @param string $base
 * @param string $path
 * 思路:去除共同部分
 */

function rela_pos($base, $path)
{
    $base = explode('/', trim($base,'/'));
    $path = explode('/', trim($path,'/'));
    $ln1 = count($base);
    $ln2 = count($path);
    if ($ln1 > $ln2) {
        $i = 0;
        foreach ($path as $k => $v) {
            if ($v == $base[$k]) {
                $i++;
            }else{
                break;
            }
        }
    } else {
        $i = 0;
        foreach ($base as $k1 => $v1) {
            if ($v1 == $path[$k1]) {
                $i++;
            }else{
                break;
            }
        }
    }
    array_splice($base, 0, $i);
    array_splice($path, 0, $i);
    //當前兩個路徑有相同的根目錄
    $b_len=count($base)-1;
    $st='';
   for($j=0;$j<$b_len;$j++){
    $st.='../';
   }
    return $st.implode('/',$path);
}

$a = '/c/a/b/c/d/t/w/e.php';
$b = '/a/b/12/34/c.php';
$res=rela_pos($a,$b);

var_dump($res);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM