# parse_str

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

parse_str — Analyse 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

- parse_url() - Analyse une URL et retourne ses composants
- pathinfo() - Retourne des informations sur un chemin système
- http_build_query() - Génère une chaîne de requête en encodage URL
- urldecode() - Décode une chaîne encodée URL