日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

.. 相对目录php,php 计算两个目录的相对路径

發布時間:2025/4/5 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .. 相对目录php,php 计算两个目录的相对路径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

計算兩個目錄的相對路徑,網上有好多代碼,發現好多是用array_diff_assoc這個函數,這樣不對.

/**

* Created by PhpStorm.

* User: 優美代碼

* Date: 2019/9/9

* Time: 19:59

*/

function getPath($path1, $path2)

{

//是否是真實的路徑格式 這里省略判斷了,

//兩個文件相同時候,直接返回錯誤

if ($path1 == $path2) {

return false;

}

$arr1 = explode('/', $path1);

$arr2 = explode('/', $path2);

$count1 = count($arr1);

for ($i = 0; $i < $count1; $i++) {

//因為根目錄都是開始"/"開始的.比較到不一致時候終止,

if ($arr1[$i] !== $arr2[$i]) {

break;

}

}

//需要回退的次數

$back_num = $count1 - $i - 1;

//回退到交叉點

if ($back_num == 0) {

$back_str = './';

} else {

$back_str = str_repeat('../', $back_num);

}

//刪除第二個路徑中,與第一個路徑里相同的部分

//也就是刪掉交叉點和前面的東西

array_splice($arr2, 0, $i);

$path2 = implode('/', $arr2);

//組合起來

return $back_str . $path2;

}

$path1 = '/data/www/app/book/a/d/a.php';

$path2 = '/data/app/app/book/b.php';

$path1 = '/data/www/app1/shop/model/index.php';

$path2 = '/data/www/app1/user.php';

echo getPath($path1, $path2);

說說代碼原理:

給出兩個路徑

a是 /data/www/app1/shop/model/index.php

b是 /data/www/app1/user/model/ok/user.php

兩個路徑啊a,b,想象成兩條河流, 有一個共同的源頭是根目錄 /,還有一個分支點 app1

分析第一個路徑,

找到分支點 app1,從分支點開始數目錄層次深度是m,

這樣用m個../拼起來,就返回到分支點app1,

第二個路徑的交匯點之后的路徑"user/model/ok/user.php"

組成了 ../../user/model/ok/user.php

這就是b相對于a的,相對路徑了 (在a文件中 引入b文件,用到的)

總結

以上是生活随笔為你收集整理的.. 相对目录php,php 计算两个目录的相对路径的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。