php如何計算檔案的相對路徑

來源:互聯網
上載者:User
這篇文章主要介紹了php計算兩個檔案相對路徑的方法,涉及php操作字串的技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文執行個體講述了php計算兩個檔案相對路徑的方法。分享給大家供大家參考。具體如下:

一、問題:

寫一個php函數算出兩個檔案的相對路徑。例如$a="/a/b/c/d/e.php"; $b="/a/b/12/34/c.php",B相對於A的相對路徑是什嗎?

二、解決方案:

<?php/** * 求$b相對於$a的相對路徑 * @param string $a * @param string $b * @return string */function getRelativePath ($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;

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.