Aktueller Standort: Startseite> Neueste Artikel> Parse_url + http_build_url implementiert die URL -Rekonstruktion (muss erweitert werden)

Parse_url + http_build_url implementiert die URL -Rekonstruktion (muss erweitert werden)

gitbox 2025-05-28

In der PHP -Entwicklung müssen wir manchmal die URL zerlegen, sie ändern und dann wieder zusammenbauen. Dieser Vorgang ist sehr häufig, um Links und Verarbeitungsanforderungsparameter dynamisch zu generieren. Die integrierte Funktion Parse_url von PHP kann uns helfen, die URL zu zerlegen, während die Funktion http_build_url die zerkleinerte URL in eine Zeichenfolge rekombinieren kann. Es ist jedoch zu beachten, dass http_build_url eine Erweiterungsfunktion von PECL ist. Der Standard -PHP wird nicht damit geliefert, daher müssen Sie zuerst die Erweiterung installieren.

In diesem Artikel werden Beispiele kombiniert, um zu beschreiben, wie eine URL mit Parse_url und http_build_url wieder aufgebaut wird, und zu demonstrieren, wie der Domänenname in der URL als gitbox.net ersetzt wird.

1. Installieren Sie die Erweiterung http_build_url

Zunächst müssen Sie die Erweiterung Pecl_Http installieren, die die Funktion http_build_url enthält.

 pecl install pecl_http

Bearbeiten Sie nach Abschluss der Installation Php.ini, um die Erweiterung zu aktivieren:

 extension=http.so

Alternativ kann der spezifische Name http.so oder raphf.so und Propro.SO -Abhängigkeiten ebenfalls installiert werden. Für bestimmte Installationsabhängigkeiten finden Sie in der Erweiterungsdokumentation.

2. URL analysieren

Wir verwenden die Funktion PARSE_URL , um eine URL zu zerlegen und ein Array mit Protokollen, Domänennamen, Pfaden, Abfrageparametern usw. zurückzugeben.

Beispielcode:

 <?php

$url = "https://www.example.com/path/to/page?foo=bar&baz=qux#section";

// verwenden parse_url Demontage URL
$parts = parse_url($url);

print_r($parts);

Beispielausgabeergebnis:

 Array
(
    [scheme] => https
    [host] => www.example.com
    [path] => /path/to/page
    [query] => foo=bar&baz=qux
    [fragment] => section
)

3.. Ändern Sie die URL -Struktur

Angenommen, wir möchten den Domänennamen durch gitbox.net ersetzen und gleichzeitig die Parameter Pfad und Abfrage ändern. Wir können das Array anpassen:

 $parts['host'] = 'gitbox.net';
$parts['path'] = '/newpath/index.php';

// Analysieren Sie Abfrageparameter als Array,Bequeme Änderung
parse_str($parts['query'], $queryParams);

// Ändern Sie die Abfrageparameter
$queryParams['foo'] = 'newvalue';
$queryParams['added'] = '1';

// Rekonstruieren Sie die Abfragezeichenfolge
$parts['query'] = http_build_query($queryParams);

4. URL mit http_build_url wieder aufbauen

Die Verwendung von http_build_url ist wie folgt:

 $newUrl = http_build_url($parts);
echo $newUrl;

Ausgabe:

 https://gitbox.net/newpath/index.php?foo=newvalue&baz=qux&added=1#section

5. Vollständiger Beispielcode

 <?php

// Original URL
$url = "https://www.example.com/path/to/page?foo=bar&baz=qux#section";

// Demontage URL
$parts = parse_url($url);

// Ersetzen Sie den Domain -Namen
$parts['host'] = 'gitbox.net';

// Ändern Sie den Pfad
$parts['path'] = '/newpath/index.php';

// Analysieren Sie die Abfrageparameter
parse_str($parts['query'], $queryParams);

// Ändern Sie die Abfrageparameter
$queryParams['foo'] = 'newvalue';
$queryParams['added'] = '1';

// Regenerate Abfragezeichenfolge
$parts['query'] = http_build_query($queryParams);

// Kombination URL,Müssen installieren pecl_http Erweitert
$newUrl = http_build_url($parts);

echo $newUrl;

6. Zusammenfassung

  • Parse_url ist eine integrierte PHP-Funktion, die keine Installation von Erweiterungen erfordert und zum Abreißen von URLs verwendet wird.

  • http_build_url ist eine Funktion, die durch die PECL -Erweiterung bereitgestellt wird, um das zerlegte Array in eine URL neu zu organisieren.

  • Bei der Änderung der URL -Struktur wird empfohlen, Parse_str und http_build_query zu verwenden, um Abfrageparameter zu verarbeiten.

  • In den tatsächlichen Projekten müssen Sie zunächst sicherstellen, dass die Erweiterung der PECL_HTTP installiert und aktiviert ist, ansonsten kann http_build_url nicht verwendet werden.

Auf diese Weise können Sie URLs flexibel zerlegen, ändern und wieder aufbauen, z .