parse_str

(PHP 4, PHP 5, PHP 7)

parse_strAnalyse une chaîne de caractères d'une variable

Description

parse_str ( string $encoded_string [, array &$result ] ) : void

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

Liste de paramètres

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

Avertissement

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.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
7.2.0 L'utilisation de parse_str() sans le second argument émet une note E_DEPRECATED.

Exemples

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
?>

Notes

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.

Voir aussi