(PHP 4, PHP 5, PHP 7)
parse_str — Analyse une chaîne de caractères d'une variable
$encoded_string
[, array &$result
] )
Analyse la chaîne de caractères encoded_string
comme s'il
s'agissait des paramètres passés via l'URL. Toutes les variables
qu'elle y repère sont alors créées, avec leurs valeurs respectives (ou
dans le tableau si result
est fourni).
encoded_string
La chaîne d'entrée.
result
Si le second paramètre result
est fourni,
les variables y seront stockées, sous forme d'un tableau indexé.
L'utilisation de cette fonction sans le paramètre result
est trés fortement découragé et déconseillé
à partir de PHP 7.2.
La définition dynamique des variables dans la portée de la fonction souffre exactement des mêmes problèmes que register_globals.
Lisez la section sur la sécurité de l'utilisation des registres globaux expliquant pourquoi c'est dangereux.
Aucune valeur n'est retournée.
Version | Description |
---|---|
7.2.0 |
L'utilisation de parse_str() sans le second argument
émet une note E_DEPRECATED .
|
Exemple #1 Exemple avec parse_str()
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
// Recommandé
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
// Déconseillé
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>
Parce que les variables en PHP ne peuvent pas avoir des points et des
espaces dans leurs noms, ceux-ci sont convertis en soulignements. La même
chose s'applique à la dénomination des noms de clés respectifs en cas d'utilisation
de cette fonction avec le paramètre de result
.
Exemple #2 Déformation des nom par parse_str()
<?php
parse_str("My Value=Something");
echo $My_Value; // Something
parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>
Note:
Toutes les variables créées (ou les valeurs retournées dans le tableau si le second paramètre est défini) sont déjà urldecode().
Note:
Pour obtenir le QUERY_STRING actuel, vous pouvez utiliser la variable $_SERVER['QUERY_STRING']. En outre, vous voudrez peut-être lire la section sur les variables de sources externes.
Note:
Le paramètre magic_quotes_gpc affecte la sortie de cette fonction, car parse_str() utilise le même mécanisme que celui utilisé par PHP pour remplir les variables $_GET, $_POST, etc.