Relative Pfade in absolute URLs mit PHP umwandeln
Das Umwandeln relativer Pfade in absolute URLs ist eine häufige Aufgabe bei der Arbeit mit Webseiten. PHP bietet eine unkomplizierte Funktion, rel2abs, um diesen Prozess zu vereinfachen.
Die Funktion verstehen
Die rel2abs-Funktion benötigt zwei Parameter:
- $rel: Der relative Pfad, der transformiert werden muss.
-
$base: Die Basis-URL, aus der der absolute Pfad generiert werden soll.
Funktionsimplementierung
- Es prüft zunächst, ob das bereitgestellte $rel bereits eine absolute URL ist (d. h. ein Schema wie „http“ oder „https“ enthält "). Wenn dies der Fall ist, gibt die Funktion es unverändert zurück.
- Wenn $rel keine absolute URL ist, prüft sie, ob sie mit „#“ oder „?“ beginnt. Wenn dies der Fall ist, bedeutet dies, dass der Pfad entweder einen Anker oder eine Abfragezeichenfolge darstellt. In diesem Fall stellt die Funktion $rel die Basis-URL voran und gibt sie zurück.
- Für Pfade, die nicht in die oben genannten Kategorien passen, extrahiert die Funktion die Schema-, Host- und Pfadkomponenten aus der Basis-URL und Entfernt die Nicht-Verzeichniselemente aus dem Pfad.
- Wenn der relative Pfad mit „/“ beginnt, bedeutet dies, dass der Pfad absolut relativ zum Stammverzeichnis ist. In diesem Fall wird der aktuelle Pfad in der Basis-URL verworfen und der Pfad der relativen URL verwendet.
- Die Funktion erstellt dann eine schmutzige absolute URL, indem sie die Komponenten der Basis-URL und des relativen Pfads kombiniert .
- Abschließend wird eine Reihe regulärer Ausdrücke angewendet, um die schmutzige absolute URL zu bereinigen und unnötige Elemente wie doppelte Schrägstriche („//“), Punktpfade („/./“) und unnötige übergeordnete Elemente zu entfernen Verzeichnisverweise ("/foo/../").
- Die resultierende URL wird dann als absolute URL zurückgegeben.
Beispielverwendung
Der folgende Codeausschnitt zeigt ein Beispiel für die Verwendung der rel2abs-Funktion:
$base_url = "https://www.example.com/directory/";
$relative_path = "about.php";
$absolute_url = rel2abs($relative_path, $base_url);
echo $absolute_url; // Output: https://www.example.com/directory/about.php
Nach dem Login kopieren
Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP relative Pfade in absolute URLs umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!