Heim  >  Artikel  >  Backend-Entwicklung  >  So berechnen Sie den relativen Pfad zwischen zwei Dateien über PHP

So berechnen Sie den relativen Pfad zwischen zwei Dateien über PHP

jacklove
jackloveOriginal
2018-06-09 11:57:572195Durchsuche

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(&#39;/&#39;, $path1);
    $arr2 = explode(&#39;/&#39;, $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, &#39;..&#39;);
    }else{
        $prefix = array(&#39;.&#39;);
    }
    $tmp = array_merge($prefix, array_slice($arr1, $depth));
    $relativePath = implode(&#39;/&#39;, $tmp);
    return $relativePath;
}
?>

demo

<?php
$path1 = &#39;/home/web/lib/img/cache.php&#39;;
$path2 = &#39;/home/show.php&#39;;
echo getRelativePath($path1, $path2).&#39;<br>&#39;; // ./web/lib/img/cache.php
$path1 = &#39;/home/web/lib/img/cache.php&#39;;
$path2 = &#39;/home/web/api/show.php&#39;;
echo getRelativePath($path1, $path2).&#39;<br>&#39;; // ../lib/img/cache.php
$path1 = &#39;/home/web/lib/img/cache.php&#39;;  
$path2 = &#39;/home/web/api/img/show.php&#39;;  
echo getRelativePath($path1, $path2).&#39;<br>&#39;; // ../../lib/img/cache.php
$path1 = &#39;/home/web/lib/img/cache.php&#39;;
$path2 = &#39;/xhome/web/show.php&#39;;
echo getRelativePath($path1, $path2).&#39;<br>&#39;; // ../../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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Polymorphismus in PHPNächster Artikel:Polymorphismus in PHP