parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_strVerarbeitet einen String als Abfrage-String einer URL

Beschreibung

parse_str(string $string, array &$result): void

Verarbeitet string, als ob er der Query-String einer URL-Übergabe via GET wäre, und setzt Schlüssel im angegebenen Array result. Wenn kein result übergeben wurde, werden die Werte stattdessen als Variablen im aktuellen Geltungsbereich gesetzt.

Parameter-Liste

string

Die Eingabezeichenkette.

result

Eine per Referenz übergebene Variable, die auf ein Array gesetzt wird, das die aus string extrahierten Schlüssel-Wert-Paare enthält. Wenn der Parameter result nicht übergeben wird, wird für jeden Schlüssel eine eigene Variable im lokalen Geltungsbereich gesetzt.

Warnung

Diese Funktion ohne den zweiten Parameter zu verwenden wird von PHP 7.2 an MISSBILLIGT und es wird dringend davon ABGERATEN. Von PHP 8.0.0 an ist der Parameter result zwingend erforderlich.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version Beschreibung
8.0.0 result ist nicht mehr optional.
7.2.0 Die Verwendung von parse_str() ohne den zweiten Parameter erzeugt nun einen E_DEPRECATED-Fehler.

Beispiele

Beispiel #1 Der Gebrauch von parse_str()

<?php
$str
= "erstes=wert&arr[]=foo+bar&arr[]=baz";

// Empfohlen
parse_str($str, $output);
echo
$output['erstes'], PHP_EOL; // value
echo $output['arr'][0], PHP_EOL; // foo bar
echo $output['arr'][1], PHP_EOL; // baz
?>

Bei der Erstellung von Array-Schlüsseln oder lokalen Variablen werden alle Leerzeichen und Punkte in Parameternamen in Unterstriche umgewandelt. Dies liegt daran, dass Variablennamen in PHP keine Leerzeichen oder Punkte enthalten dürfen. Das gilt auch, wenn diese Funktion mit dem empfohlenen Parameter result verwendet wird.

Beispiel #2 parse_str()-Namens-Manipulation

<?php
parse_str
("Mein Wert=Etwas", $output);
echo
$output['Mein_Wert']; // Etwas
?>

Anmerkungen

Hinweis:

parse_str() wird durch die Direktive max_input_vars beeinflusst. Das Überschreiten dieser Grenze löst ein E_WARNING aus und alle Variablen, die über diese Grenze hinausgehen, werden nicht zum Ergebnisarray hinzugefügt. Der Standardwert ist 1000; max_input_vars kann nach Bedarf angepasst werden.

Hinweis:

Alle Werte, die in das Array result eingetragen werden (oder Variablen, die erstellt werden, wenn der zweite Parameter nicht gesetzt ist), sind bereits URL-dekodiert. Dabei gelten die gleichen Regeln wie bei urldecode().

Hinweis:

Um auf den Query-String der aktuellen Anfrage zuzugreifen, kann die Variable $_SERVER['QUERY_STRING'] verwendet werden. Weitere Informationen finden sich auch im Abschnitt Variablen aus externen Quellen.

Siehe auch