(PHP 4, PHP 5, PHP 7, PHP 8)
parse_str — Verarbeitet einen String als Abfrage-String einer URL
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.
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.
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.
Es wird kein Wert zurückgegeben.
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.
|
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
?>
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.