摘要:最近看到一個(gè)的面試題,是在知道兩個(gè)文件的絕對(duì)路徑的情況下,求出文件相對(duì)于文件的相對(duì)路徑。此文已在本人博客發(fā)表地址碼客
最近看到一個(gè)php的面試題,是在知道兩個(gè)文件的絕對(duì)路徑的情況下,求出文件1相對(duì)于文件2的相對(duì)路徑。
這個(gè)問題,看似很簡(jiǎn)單,其實(shí)真簡(jiǎn)單,但卻思考了很久才解決,變笨了!
下面我們我的方法,寫出來,供大家參考,如果有不同意見或者問題,請(qǐng)留言給我:
/** * [myRelativePath 計(jì)算文件2相對(duì)于文件1的相對(duì)路徑] * @param [string] $file1 [文件1的絕對(duì)路徑] * @param [string] $file2 [文件2的絕對(duì)路徑] * @return [string] [文件2相對(duì)于文件1的相對(duì)路徑] */ function getRelativePath($file1,$file2){ //分別對(duì)兩個(gè)文件路徑進(jìn)行分割 $file1_arr = explode("/", $file1); $file2_arr = explode("/", $file2); //計(jì)算file1文件不同于file2的部分(計(jì)算差集) $arr1 = array_diff_assoc($file1_arr,$file2_arr); $arr2 = array_diff_assoc($file2_arr,$file1_arr); $arr1_cnt = count($arr1); $str_path = ""; for($i=0;$i<$arr1_cnt-1;$i++){ $str_path .="../"; } $path2 = implode("/",$arr2); return $str_path . $path2; }
思路還是很簡(jiǎn)單,就是先找出相同的部分,然后計(jì)算文件1到相同的路徑的相對(duì)路徑,
再然后,拼接文件2相同路徑以后的路徑。
此文已在本人博客發(fā)表地址:碼客
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/25776.html
摘要:打開窗口,轉(zhuǎn)到目錄。的意思是啟動(dòng)服務(wù)的時(shí)候跳過權(quán)限表認(rèn)證。連接權(quán)限數(shù)據(jù)庫。刷新權(quán)限必須步驟。重啟方式重啟方式在桌面開始菜單中選擇運(yùn)行,輸入找到右鍵重啟就可以了通過命令進(jìn)行操作之前,需要將安裝目錄下的目錄加入計(jì)算機(jī)的環(huán)境變量的里面。 環(huán)境說明: 操作系統(tǒng):Windows Server 2012 R2 PHP版本:php-5.6.35-Win32-VC11-x64下載地址:https://...
摘要:打開窗口,轉(zhuǎn)到目錄。的意思是啟動(dòng)服務(wù)的時(shí)候跳過權(quán)限表認(rèn)證。連接權(quán)限數(shù)據(jù)庫。刷新權(quán)限必須步驟。重啟方式重啟方式在桌面開始菜單中選擇運(yùn)行,輸入找到右鍵重啟就可以了通過命令進(jìn)行操作之前,需要將安裝目錄下的目錄加入計(jì)算機(jī)的環(huán)境變量的里面。 環(huán)境說明: 操作系統(tǒng):Windows Server 2012 R2 PHP版本:php-5.6.35-Win32-VC11-x64下載地址:https://...
閱讀 2688·2023-04-25 22:09
閱讀 2894·2021-10-14 09:47
閱讀 2111·2021-10-11 11:10
閱讀 2769·2021-10-09 09:44
閱讀 3484·2021-09-22 14:57
閱讀 2562·2019-08-30 15:56
閱讀 1670·2019-08-30 15:55
閱讀 836·2019-08-30 14:13