(PHP 4, PHP 5, PHP 7, PHP 8)
parse_str — Überträgt einen String in Variablen
Verarbeitet string
, als ob er der Query-String einer
URL-Übergabe via GET wäre, und erstellt Variablen im aktuellen
Geltungsbereich (oder im Array, wenn der Parameter
result
übergeben wurde).
string
Die Eingabezeichenkette.
result
Ist der zweite Parameter arr
angegeben, werden
die Variablen in diesem Array als dessen Elemente gespeichert.
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']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
// NICHT EMPFOHLEN
parse_str($str);
echo $erstes; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>
Weil PHP-Variablen keine Punkte oder Leerzeichen im Namen enthalten dürfen,
werden diese in Unterstriche umgewandelt. Dasselbe gilt für die
entsprechenden Schlüsselnamen, für den Fall, dass diese Funktion mit dem
Parameter result
verwendet wird.
Beispiel #2 parse_str()-Namens-Manipulation
<?php
parse_str("Mein Wert=Etwas");
echo $Mein_Wert; // Etwas
parse_str("Mein Wert=Etwas", $output);
echo $output['Mein_Wert']; // Etwas
?>
Hinweis:
Alle erzeugten Variablen (oder Werte, die im Array zurückgegeben werden, wenn der zweite Parameter übergeben wurde) wurden bereits mit urldecode() vorbereitet.
Hinweis:
Um auf den aktuellen
QUERY_STRING
zuzugreifen, kann die Variable $_SERVER['QUERY_STRING'] verwendet werden. Weitere Informationen finden sich auch im Abschnitt Variablen aus externen Quellen.