parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_strAnalyse une chaîne de caractères comme une chaîne de requête URL

Description

parse_str(string $string, array &$result): void

Analyse la chaîne de caractères 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

string

La chaîne d'entrée.

result

Une variable passée par référence, qui sera définie comme un tableau contenant les paires clé-valeur extraites de string. Si le paramètre result n'est pas passé, une variable séparée est définie dans la portée locale pour chaque clé.

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. À partir de PHP 8.0.0, le paramètre result est obligatoire.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
8.0.0 result n'est plus optionnel.
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'], PHP_EOL; // value
echo $output['arr'][0], PHP_EOL; // foo bar
echo $output['arr'][1], PHP_EOL; // baz
?>

N'importe quel espace ou point dans les noms de paramètres est converti en tiret bas lors de la création de clés de tableau ou de variables locales. Ceci est dû au fait que les noms de variables en PHP ne peuvent pas contenir d'espaces ou de points, mais cela s'applique même lorsque vous utilisez cette fonction avec le paramètre result .

Exemple #2 Déformation des nom par parse_str()

<?php
parse_str
("My Value=Something", $output);
echo
$output['My_Value']; // Something
?>

Notes

Note:

La fonction parse_str() est affectée par la directive max_input_vars. Dépasser cette limite déclenche un avertissement E_WARNING, et toute variable au-delà de cette limite n'est pas ajoutée au tableau de résultat. La valeur par défaut est 1000 ; ajustez max_input_vars selon vos besoins.

Note:

Toutes les valeurs ajoutée dans le tableau result (ou les variables créées si le second paramètre n'est pas défini) sont déjà décodées avec les mêmes règles que urldecode().

Note:

Pour obtenir la chaîne de requête de la requête actuelle, vous pouvez utiliser la variable $_SERVER['QUERY_STRING']. En outre, vous voudrez peut-être lire la section sur les variables de sources externes.

Voir aussi