php計算兩個文件相對路徑的方法
文章主要介紹了php計算兩個文件相對路徑的方法,涉及php操作字符串的`技巧,具有一定參考借鑑價值,需要的朋友可以參考下.
一、問題:
寫一個php函數算出兩個文件的相對路徑。例如$a="/a/b/c/d/"; $b="/a/b/12/34/",B相對於A的相對路徑是什麼?
二、解決方法:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?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/";
$b = "/a/";
$path = getRelativePath($a, $b);
echo $path;
希望本文所述對大家的php程序設計有所幫助。
-
PHP基礎語言方面的筆試題和答案
伴隨着Facebook的成功,PHP這門解釋型的Web開發語言由於其清晰的定位繼續受到非常多的關注,當然對於中小企業和個人來説,Linux+Apache/Nginx+PHP+MySQL幾乎不用考慮服務器環境方面的成本;而對於開發者來説,在中小型項目開發中PHP也非常容易上手。以下是本站小編精心...
-
PHP時間和日期函數怎麼操作
php函數的多樣化和功能相近真是一大特點,同一個應用可以用多種函數實現,這恐怕也是開源的一個弊端了;通過對PHP時間函數的系統學習,充分理解了時間戳和時區的概念(這個真的很重要),有需要的小夥伴可以參考下。PHP中所有函數都是UNIX紀元的,即從1970年1月1日開始的。日...
-
PHP常用函數總結
PHP的常用函數有哪些呢?下面是由本站小編為大家整理的PHP常用函數總結,喜歡的可以收藏一下!瞭解更多詳情資訊,請關注應屆畢業生考試網!數學函數():求絕對值$abs=abs(-4.2);//4.2數字絕對值數字():進一法取整echoceil(9.999);//10浮點數進一取整r():捨去法取整ech...
-
PHP緩存技術
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展!以下是小編為大家搜索整理的PHP緩存技術,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!全頁面靜態...