8.5.3 字符串面試題3

8.5.3 字符串面試題3

四、寫一個函數,算出兩個文件的相對路徑
如:
$a=’/a/b/c/d/e.php’
$b=’/a/b/12/34/c.php’
計算出$b相對于$a的相對路徑應該是../../c/d

test.php

<?php
    function abspath($a, $b) {
        //第一步去除公共的目錄結構
        //  $a = "/a/b/c/d/e.php";
        //  $b = "/a/b/12/34/c.php";
        $a = dirname($a);    //  /a/b/c/d
        $b = dirname($b);    //  /a/b/12/34
        $a = trim($a, "/");   //   a/b/c/d
        $b = trim($b, "/");   //   a/b/12/34
        $a = explode("/", $a);  //  array("a", "b", "c", "d")
        $b = explode("/", $b);  //  array("a", "b", "12", "34")
        // $a = explode("/", trim(dirname($a), "/"));
        $num = max(count($a), count($b));
        for($i=0; $i<$num; $i++) {
            if($a[$i]==$b[$i]) {
                unset($a[$i]);
                unset($b[$i]);
            }else{
                break;
            }
        }
        //$a = array("c", "d");
        //$b = array("12", "34");
        //第二步:回到同級目錄, 進入另一個目錄
         $path = str_repeat("../", count($b)).implode("/", $a);    //  ../../c/d
        return $path;
    }
    $a = "/a/b/c/d/e/w/f/e.php";
    $b = "/a/b/12/34/100/c.php";
    // ../../c/d
    echo abspath($a, $b);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. 關于診斷X線機準直器的作用,錯誤的是()。 (6.0 分) A. 顯示照射野 B. 顯示中心線 C. 屏蔽多...
    我們村我最帥閱讀 10,828評論 0 5
  • 一、前言(可略過的廢話和作者的感情經歷) 為了給孩子們講解一門關于色彩的課堂,特意轉戰場到色彩心理學這一塊。自己覺...
    九夢島主閱讀 880評論 1 1
  • 月兒當空, 一切都在熟睡著, 夢精靈...
    時間淡化誰和誰閱讀 295評論 0 2
  • 有些快樂和幸福只說給懂的人聽。 ——寫在最前面 我的人生在沒有玩游戲之前,最喜歡的是讀書寫作,于是,那時候是公認的...
    倚岸聽風閱讀 351評論 0 0
  • 不要為明天憂慮,因為明天自有明天的憂慮。 “你要考研嗎?” “嗯,我也要考研。” 考研或許成為了大多數大學生畢業時...
    和風姑娘閱讀 1,740評論 6 10