php-Methode zur Berechnung des relativen Pfads zwischen zwei Dateien
Zum Beispiel:
Datei Der Pfad von Datei A ist /home/web/lib/img/cache.php
Der Pfad von Datei B ist /home/web/ api/img /show.php
Dann ist der Pfad von Datei A relativ zu Datei B ../../lib/img/cache.php Das heißt, Datei B greift auf den relativen Pfad von Datei A zu.
Funktion getRelativePath
<?php /** 计算path1 相对于 path2 的路径,即在path2引用paht1的相对路径 * @param String $path1 * @param String $path2 * @return String */ function getRelativePath($path1, $path2){ $arr1 = explode('/', $path1); $arr2 = explode('/', $path2); // 获取相同路径的部分 $intersection = array_intersect_assoc($arr1, $arr2); $depth = 0; for($i=0,$len=count($intersection); $i<$len; $i++){ $depth = $i; if(!isset($intersection[$i])){ break; } } // 前面全部匹配 if($i==count($intersection)){ $depth ++; } // 将path2的/ 转为 ../,path1获取后面的部分,然后合拼 // 计算前缀 if(count($arr2)-$depth-1>0){ $prefix = array_fill(0, count($arr2)-$depth-1, '..'); }else{ $prefix = array('.'); } $tmp = array_merge($prefix, array_slice($arr1, $depth)); $relativePath = implode('/', $tmp); return $relativePath; } ?>
demo
<?php $path1 = '/home/web/lib/img/cache.php'; $path2 = '/home/show.php'; echo getRelativePath($path1, $path2).'<br>'; // ./web/lib/img/cache.php $path1 = '/home/web/lib/img/cache.php'; $path2 = '/home/web/api/show.php'; echo getRelativePath($path1, $path2).'<br>'; // ../lib/img/cache.php $path1 = '/home/web/lib/img/cache.php'; $path2 = '/home/web/api/img/show.php'; echo getRelativePath($path1, $path2).'<br>'; // ../../lib/img/cache.php $path1 = '/home/web/lib/img/cache.php'; $path2 = '/xhome/web/show.php'; echo getRelativePath($path1, $path2).'<br>'; // ../../home/web/lib/img/cache.php ?>
In diesem Artikel wird erläutert, wie die Beziehung zwischen zwei Dateien durch berechnet wird PHP Relative Path-Methode. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Erklären Sie, wie PHP das angegebene Datum erhält
Detaillierte Erklärung, wie PHP eine eindeutige RequestID-Klasse generiert
So überprüfen Sie die Datenbanktabellenkapazität über MySQL
Das obige ist der detaillierte Inhalt vonSo berechnen Sie den relativen Pfad zwischen zwei Dateien über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!