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計算兩個文件相對路徑
php計算兩個文件相對路徑的方法,涉及php操作字符串的技巧,具有一定參考借鑑價值,需要的朋友可以參考下.本文實例講述了php計算兩個文件相對路徑的方法。分享給大家供大家參考。具體如下: 一、問題:寫一個php函數算出 -
Linux認證php相對路徑和絕對路徑
Linux認證備考的後階段,我們選擇的是求準求穩求規範。此複習輔導不等於題海戰術,而是要積累實戰經驗,解決掉一些考場失誤等問題。一個好的php代碼,無論放到windows還是linux,不同版本的php上,都能正確的輸出結果,纔是一個好 -
Linux認證基礎知識:php相對路徑和絕對路徑
在平日的學習、工作和生活裏,大家都寫過作文吧,作文根據寫作時限的不同可以分爲限時作文和非限時作文。爲了讓您在寫作文時更加簡單方便,以下是小編收集整理的我家的小院作文,供大家參考借鑑,希望可以幫助到有需要的朋友。 -
PHP兩個數組相加的方法
大家知道php兩個數組相加嗎?以下是小編爲大家搜索整理的'PHP兩個數組相加的方法,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!實例1:$arr1 = array("a"=>"朝陽區","b"=>"海淀區");$arr2 = array -
php的zend相對路徑問題
php下使用zend相對路徑的處理方法,就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!<?phpdefine ('P_S', PATH_SEPARATOR);define ('ROOT', "../");set_include_path -
用php計算兩個日期相差天數
php計算兩個日期相差天數的'方法,實例分析了php操作日期的技巧,需要的朋友可以參考下。123456789101112131415161718192021222324<?php/*** 求兩個日期之間相差的天數* (針對1970年1月1日之後,求之前可以採用泰勒公式 -
php中zend相對路徑問題
php下使用zend相對路徑的處理方法。如何使用呢?就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!<?phpdefine ('P_S', PATH_SEPARATOR);define ('ROOT', "../");set_i -
php返回相對時間的方法
爲了確保我局計算機局域網和計算機系統正常運行,避免和減少各種緊急事件的發生,最大限度減少各類損失,各項工作安全、有序和順利進行,特制定本預案: 一、目標:在我局的計算機網絡發生緊急事件時,採取應急處置方案,保障計算 -
使用PHP發送郵件的兩種方法
如何使用使用PHP發送郵件呢?想要知道的朋友,以下是爲大家分享的使用PHP發送郵件的兩種方法,供大家參考借鑑,歡迎瀏覽! 一、使用PHP內置的mail()函數看了一下手冊,就直接開始寫代碼了,如下<?php$to = "; //收件人$subject = -
PHP實現多線程方法兩個
導語:PHP如何實現多線程呢?下面是小編給大家提供的PHP實現多線程方法兩個,大家可以參考閱讀,更多詳情請關注應屆畢業生考試網。先寫個簡單的php代碼,這裏爲了讓腳本執行時間更長,方便看效果,sleep一下,呵呵!先看下的代碼:lsPHP