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.
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.
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
)
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);
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
<?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;
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 .