parse_str

(PHP 4, PHP 5, PHP 7)

parse_strÜberträgt einen String in Variable

Beschreibung

parse_str ( string $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).

Parameter-Liste

encoded_string

Die Eingabezeichenkette.

result

Ist der zweite Parameter arr angegeben, werden die Variablen in diesem Array als dessen Elemente gespeichert.

Warnung

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.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version Beschreibung
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'];  // 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
?>

Anmerkungen

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.

Siehe auch