(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.