(PHP 4, PHP 5, PHP 7)
parse_str — Überträgt einen String in Variable
$encoded_string
[, array &$result
] ) : void
Verarbeitet encoded_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).
encoded_string
Die Eingabezeichenkette.
result
Ist der zweite Parameter arr
angegeben, werden die Variablen in diesem Array als dessen Elemente
gespeichert.
Von der Verwendung dieser Funktion ohne den zweiten Parameter wird unbedingt ABGERATEN, und von PHP 7.2 an MISSBILLIGT.
Das dynamische Zuweisen von Variablen im Geltungsbereich einer Funktion hat genaue dieselben Probleme wie register_globals.
Die Erklärung warum dies gefährlich ist, kann dem Sicherheits-Abschnitt zur Verwendung von Register Globals entnommen werden.
Es wird kein Wert zurückgegeben.
Version | Beschreibung |
---|---|
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 dieser 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() name mangling
<?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.
Hinweis:
Die magic_quotes_gpc-Einstellung beeinflusst die Ausgabe dieser Funktion, da parse_str() dieselben Mechanismen verwendet, die PHP zum Füllen der Variablen $_GET, $_POST, etc. nutzt.