Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie http_build_query, parse_url, parse_str, um URLs über PHP zu erstellen und zu analysieren
http_build_query kann die Anforderungszeichenfolge nach dem URL-Code erstellen.
string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
Parameter:
query_data
kann ein Array oder ein Objekt sein, das Eigenschaften enthält.
Ein query_data-Array kann eine einfache eindimensionale Struktur oder ein Array sein, das aus Arrays besteht (die wiederum andere Arrays enthalten können).
Wenn query_data ein Objekt ist, werden dem Ergebnis nur öffentliche Attribute hinzugefügt.
numeric_prefix
Wenn im zugrunde liegenden Array ein numerischer Index verwendet wird und dieser Parameter angegeben ist, wird der Parameterwert als Zahl im zugrunde liegenden Array verwendet Array Das Präfix für tiefgestellte Elemente.
Dies soll es PHP oder anderen CGI-Programmen ermöglichen, beim späteren Dekodieren der Daten gültige Variablennamen zu erhalten.
arg_separator
Sofern dieser Parameter nicht angegeben und verwendet wird, wird arg_separator.output zum Trennen von Parametern verwendet (diesen Parameter gibt es in php.ini, dem Standardwert ist „&“).
enc_type
Verwendet standardmäßig PHP_QUERY_RFC1738.
Wenn enc_type PHP_QUERY_RFC1738 ist, basiert die Kodierung auf dem » RFC 1738-Standard und dem Medientyp application/x-www-form-urlencoded, und Leerzeichen werden als Pluszeichen (+) kodiert.
Wenn enc_type PHP_QUERY_RFC3986 ist, wird es gemäß » RFC 3986 codiert und Leerzeichen werden prozentual codiert (%20).
Beispiel 1: Nur query_data-Parameter verwenden
<?php$data = array( 'name' => 'fdipzone', 'gender' => 'male', 'profession' => 'programmer', 'explain' => 'a new programmer');echo http_build_query($data);?>
Ausgabe: name=fdipzone&gender=male&profession=programmer&explain=a+new+programmer
Beispiel 2: query_data verwendet ein eindimensionales Indexarray mit der Angabe
numeric_prefix=info_,arg_separator=#,enc_type=PHP_QUERY_RFC3986
<?php$data = array('fdipzone','male','programmer','a new programmer');echo http_build_query($data, 'info_', '#', PHP_QUERY_RFC3986);?>
Ausgabe:
info_0=fdipzone#info_1=male#info_2=programmer#info_3=a%20new%20programmer
parse_url analysiert die URL und gibt ihre Komponenten zurück
mixed parse_url ( string $url [, int $component = -1 ] )
Parameter:
url
Die zu analysierende URL, ungültige Zeichen werden durch _ ersetzt
Komponente
Einer von PHP_URL_PATH, PHP_URL_QUERY oder PHP_URL_FRAGMENT Gets die Zeichenfolge für den angegebenen Teil der URL. (Außer bei der Angabe als PHP_URL_PORT wird ein ganzzahliger Wert zurückgegeben).
Rückgabewert:
Bei stark unqualifizierten URLs kann parse_url() FALSE zurückgeben.
Die zurückgegebenen Daten umfassen im Allgemeinen das folgende
Schema (z. B. http), Host, Port, Benutzer, Pass, Pfad, Abfrage (nach dem Fragezeichen?), Fragment (nach dem Hash-Symbol #)
Beispiel:
<?php$url = 'http://fdipzone:123456@www.fdipzone.com:80/test/index.php?id=1#tag'; print_r(parse_url($url));echo parse_url($url, PHP_URL_SCHEME).PHP_EOL;echo parse_url($url, PHP_URL_HOST).PHP_EOL;echo parse_url($url, PHP_URL_PORT).PHP_EOL;echo parse_url($url, PHP_URL_USER).PHP_EOL;echo parse_url($url, PHP_URL_PASS).PHP_EOL;echo parse_url($url, PHP_URL_PATH).PHP_EOL;echo parse_url($url, PHP_URL_QUERY).PHP_EOL;echo parse_url($url, PHP_URL_FRAGMENT).PHP_EOL;?>
Ausgabe:
Array( [scheme] => http [host] => www.fdipzone.com [port] => 80 [user] => fdipzone [pass] => 123456 [path] => /test/index.php [query] => id=1 [fragment] => tag ) http www.fdipzone.com80fdipzone123456/test/index.php id=1tag
parse_str wird Die Zeichenfolge wird in mehrere Variablen analysiert
void parse_str ( string $str [, array &$arr ] )
Wenn str die von der URL übergebene Abfragezeichenfolge ist, wird sie in eine Variable analysiert und auf den aktuellen Bereich festgelegt.
Parameter:
str
Eingabezeichenfolge
arr
Wenn die zweite Variable arr gesetzt ist, wird die Variable alternativ in diesem Array als Array-Element gespeichert.
Beispiel 1: Aufgelöst in den aktuellen Bereich
<?php$str = 'name=fdipzone&gender=male&profession=programer&explain=a new programmer'; parse_str($str);echo $name.PHP_EOL;echo $gender.PHP_EOL;echo $profession.PHP_EOL;echo $explain.PHP_EOL;?>
Ausgabe:
fdipzone male programera new programmer
Beispiel 2:Das Ergebnis wird im arr-Array gespeichert
<?php$str = 'name=fdipzone&gender=male&profession=programer&explain=a new programmer'; parse_str($str, $arr); print_r($arr);?>
Ausgabe:
Array( [name] => fdipzone [gender] => male [profession] => programer [explain] => a new programmer )
Verwenden Sie zuerst parse_url, um die Abfrage abzurufen, und verwenden Sie dann parse_str, um die Parameter zu analysieren
<?php$url = 'http://www.fdipzone.com/test/index.php?name=fdipzone&gender=male&profession=programmer&explain=a new programmer';$query = parse_url($url, PHP_URL_QUERY); parse_str($query, $data); print_r($data);?>
Ausgabe:
Array( [name] => fdipzone [gender] => male [profession] => programmer [explain] => a new programmer )
In diesem Artikel wird erläutert, wie http_build_query verwendet wird. parse_url, parse_str zum Erstellen und Analysieren einer URL. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
So implementieren Sie die Shake-Funktion über HTML5
Wie Sie auto_increment über die MySql-Methode anzeigen und ändern
So generieren Sie eine Verknüpfung zum Webdesktop über PHP
Das obige ist der detaillierte Inhalt vonSo verwenden Sie http_build_query, parse_url, parse_str, um URLs über PHP zu erstellen und zu analysieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!