大概的在網(wǎng)上找了一下,覺得大家的實(shí)現(xiàn)的都不夠簡潔,于是自己寫了一個(gè),寫完了,我在想,就是這樣么,這樣有什么問題么,這是最好的么。 比如如果路徑中出現(xiàn) “///”, “//” 的分隔符改如何處理?
<?php function getRelativePath($path1, $path2){ // 參數(shù)判斷 if(!isset($path1) || !isset($path2)){ return '請(qǐng)檢查參數(shù)'; } $path1_arr = explode('/', $path1); $path2_arr = explode('/', $path2); $count = count($path1_arr); $res_path = ''; $pos = 0; // 異同部分開始的位置 foreach ($path1_arr as $key => $value) { if($value != $path2_arr[$key]){ $pos = $key; break; } } // 需要返回的層級(jí)數(shù) $len = $count - $pos -1; // 拼接相對(duì)前綴 for($i = $len; $len > 0; $len--){ $res_path .= '../'; } // 求剩余路徑 $tail = implode('/', array_slice($path2_arr, $pos)); return $res_path . $tail; } echo getRelativePath('./a/b/d/e/f/2.jpg', './a/b/c/1.png');?>新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注