Cas limites de parse_str()
<?php
parse_str('x=1&y.z=2&a b=3&c+d=4&e[=3', $x);
print_r($x);
parse_str() lit les variables de la chaîne de requête d’une URL et les convertit en tableau. Lorsque les noms de variables contiennent un point ., ce point est automatiquement converti en underscore.
Cela se produit avec le point, mais aussi avec d’autres caractères, tels que (espace), + (qui représente également un espace), et un [ ouvrant seul (lorsqu’il est complété par un fermant, cette variable devient un tableau).
Cela provient des versions précédentes de PHP, où ces variables finissaient par être converties en variables PHP. Or, les caractères listés sont interdits dans les noms de variables. Ce n’est plus un problème, car PHP évite désormais de créer des variables de cette façon pour des raisons de sécurité. Cependant, pour des raisons de compatibilité ascendante, ces conversions sont toujours en place.
See Also
- parse_str (manuel PHP)
- parse_str - replacing dot and space with underscore in keys
- Various parse_str() replacements [Try me]
PHP Features
Last updated: 11 October 2026