Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie http_build_query, parse_url, parse_str, um URLs über PHP zu erstellen und zu analysieren

So verwenden Sie http_build_query, parse_url, parse_str, um URLs über PHP zu erstellen und zu analysieren

jacklove
jackloveOriginal
2018-06-09 10:07:401638Durchsuche

1.http_build_query

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(    &#39;name&#39; => &#39;fdipzone&#39;,    &#39;gender&#39; => &#39;male&#39;,    &#39;profession&#39; => &#39;programmer&#39;,    &#39;explain&#39; => &#39;a new programmer&#39;);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(&#39;fdipzone&#39;,&#39;male&#39;,&#39;programmer&#39;,&#39;a new programmer&#39;);echo http_build_query($data, &#39;info_&#39;, &#39;#&#39;, PHP_QUERY_RFC3986);?>

Ausgabe:

info_0=fdipzone#info_1=male#info_2=programmer#info_3=a%20new%20programmer

2.parse_url

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 = &#39;http://fdipzone:123456@www.fdipzone.com:80/test/index.php?id=1#tag&#39;;
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

3.parse_str

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 = &#39;name=fdipzone&gender=male&profession=programer&explain=a new programmer&#39;;
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 = &#39;name=fdipzone&gender=male&profession=programer&explain=a new programmer&#39;;
parse_str($str, $arr);
print_r($arr);?>

Ausgabe:

Array(
    [name] => fdipzone
    [gender] => male
    [profession] => programer
    [explain] => a new programmer
)

4. Rufen Sie den Abfrageparameter der URL ab und analysieren Sie

Verwenden Sie zuerst parse_url, um die Abfrage abzurufen, und verwenden Sie dann parse_str, um die Parameter zu analysieren

<?php$url = &#39;http://www.fdipzone.com/test/index.php?name=fdipzone&gender=male&profession=programmer&explain=a new programmer&#39;;$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!

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