看了網友 的**,很精簡,而且測試結果也很滿意
例如:檔案a 的路徑是 /home/web/lib/img/cache.php
檔案b的路徑是 /home/web/api/img/show.php
那麼,檔案a相對於檔案b的路徑是 ../../lib/img/cache.php,即檔案b 訪問 檔案a的相對路徑。
上**
function getrelativepath($patha, $pathb)
}$blen = count($arrb) - $depth - 1;
if ($blen > 0) else
$tmp = array_merge($prefix, array_slice($arra, $depth));
$relativepath = implode('/', $tmp);
return $relativepath;
}
看**量覺得很簡單,但是面試的時候這道題還有友情提示,說歷史正確率只有25%。。。。。所以讀完**給各位出乙個保姆級注釋,不理解光背**的話,以後再遇到還是感覺很模糊。上**
function getrelativepath($patha, $pathb)
if (!isset($inter[$i]))
}//這個是計算出字串左邊應該給幾個'..'。
//幾個'..'取決於b的減掉切割深度以後,再減去b的檔案所在的目錄後剩餘的目錄個數
//如下
// /home/web/lib/img/cache.php
// /home/web/api/show.php
//去掉/home/web/和show.php的目錄後 就剩乙個api目錄了。這乙個api就替換為乙個'..'
$blen = count($arrb) - $depth - 1;
//這裡判斷一下如果》0 說明如上面描述的還有目錄,直接替換為'..',剩餘幾個就給perfix補充幾個'..'
if ($blen > 0) else
//當你看了上面的注釋,這裡就不用多啥了吧。
$tmp = array_merge($prefix, array_slice($arra, $depth));
$relativepath = implode('/', $tmp);
return $relativepath;
}
測試資料
$path1 = '/home/web/lib/img/cache.php';
$path2 = '/home/show.php';
echo getrelativepath($path1, $path2) . '\r'; // ./web/lib/img/cache.php
$path1 = '/home/web/lib/img/cache.php';
$path2 = '/home/web/api/show.php';
echo getrelativepath($path1, $path2) . '\r'; // ../lib/img/cache.php
//$path1 = '/home/web/lib/img/cache.php';
$path2 = '/home/web/api/img/show.php';
echo getrelativepath($path1, $path2) . '\r'; // ../../lib/img/cache.php
//$path1 = '/home/web/lib/img/cache.php';
$path2 = '/xhome/web/show.php';
echo getrelativepath($path1, $path2) . '\r'; // ../../home/web/lib/img/cache.php
兩個面試題
1.實現乙個lite版的字串替換函式 c c char strreplace char str,const char sub,const char rep 限制條件和要求如下 1.其中str為原字串,sub為待被替換的子串。為簡單起見,假定字串sub和rep長度一樣 2.直接對原字串str進行修改並...
兩個簡單的面試題
分享兩個簡單的面試題,好吧,求質數的那個面試題居然沒做出來。要好好打基礎 public class study0812 獲取arr陣列中最大的數的索引,該索引加97就是字元中重複最多的字元 int maxindex 0 for int i 0 i arr.length 1 i return char...
面試題 兩個佇列實現棧
兩個佇列實現棧 前提已知 typedef struct queue queue void initqueue queue q void enqueue queue q,int key int dequeue queue q int sizeofqueue queue q int isqueueemp...