Heim >Backend-Entwicklung >PHP-Tutorial >Wie konvertiere ich mit PHP einen relativen Pfad in eine absolute URL?

Wie konvertiere ich mit PHP einen relativen Pfad in eine absolute URL?

Susan Sarandon
Susan SarandonOriginal
2024-11-07 11:52:03219Durchsuche

How to Convert a Relative Path to an Absolute URL Using PHP?

Relative Pfade in absolute URLs mit PHP umwandeln

Die Umwandlung relativer Pfade in absolute URLs ist für die Arbeit mit webbasierten Ressourcen unerlässlich. Diese Aufgabe kann mit PHP erledigt werden, einer weit verbreiteten Skriptsprache für die Webentwicklung.

So konvertieren Sie einen relativen Pfad in eine absolute URL mit PHP:

An Um diese Konvertierung zu erreichen, können Sie die Funktion rel2abs() verwenden:

function rel2abs($rel, $base)
{
    /* return if already absolute URL */
    if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel;

    /* queries and anchors */
    if ($rel[0]=='#' || $rel[0]=='?') return $base.$rel;

    /* parse base URL and convert to local variables:
       $scheme, $host, $path */
    extract(parse_url($base));

    /* remove non-directory element from path */
    $path = preg_replace('#/[^/]*$#', '', $path);

    /* destroy path if relative url points to root */
    if ($rel[0] == '/') $path = '';

    /* dirty absolute URL */
    $abs = "$host$path/$rel";

    /* replace '//' or '/./' or '/foo/../' with '/' */
    $re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#');
    for($n=1; $n>0; $abs=preg_replace($re, '/', $abs, -1, $n)) {}

    /* absolute URL is ready! */
    return $scheme.'://'.$abs;
}

Erklärung:

  1. Überprüfen Sie, ob der relative Pfad bereits eine absolute URL ist ( enthält ein Schema).
  2. Verketten Sie Abfragen oder Anker mit der Basis-URL.
  3. Parsen Sie die Basis-URL in ihre Schema-, Host- und Pfadkomponenten.
  4. Konvertieren Sie die bereitgestellte relative URL Pfad in eine „schmutzige“ absolute URL.
  5. Ersetzen Sie Muster wie „//“ oder „/./“ oder „/foo/../“ iterativ durch „/“, um die absolute URL zu bereinigen.
  6. Gibt die bereinigte absolute URL zurück.

Verwendung:

Mit dieser Funktion können Sie jeden relativen Pfad in die entsprechende absolute URL umwandeln. Die folgenden Snippets zeigen beispielsweise, wie man einen relativen Pfad in eine absolute URL umwandelt:

$rel_path = "images/profile.jpg";
$base_url = "https://example.com/";

$abs_url = rel2abs($rel_path, $base_url); // Output: "https://example.com/images/profile.jpg"

Das obige ist der detaillierte Inhalt vonWie konvertiere ich mit PHP einen relativen Pfad in eine absolute URL?. 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