Maison >développement back-end >tutoriel php >Comment puis-je empêcher PHP de remplacer les points par des traits de soulignement dans les noms de variables GET, POST et COOKIE ?

Comment puis-je empêcher PHP de remplacer les points par des traits de soulignement dans les noms de variables GET, POST et COOKIE ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-11 01:59:09816parcourir

How Can I Prevent PHP from Replacing Dots with Underscores in GET, POST, and COOKIE Variable Names?

PHP : empêcher le remplacement de caractères dans les noms GET, POST et COOKIE

PHP remplace automatiquement les points dans les noms de variables entrants par des traits de soulignement. Ce comportement peut être indésirable dans certains cas. Comment pouvons-nous le désactiver ?

Pourquoi PHP remplace les points

Selon PHP.net, les points ne sont pas des caractères valides dans les noms de variables. L'analyseur interpréterait "varname.ext" comme une variable nommée "varname" suivie de l'opérateur de concaténation et de la chaîne "ext", ce qui n'est pas le résultat attendu.

Alternatives

Malgré les tentatives pour empêcher ce comportement, le mécanisme d'analyse de PHP le rend nécessaire. Cependant, il existe des moyens de contourner ce problème :

  • Variables POST : Utilisez str_replace pour remplacer les traits de soulignement par des points avant d'accéder aux variables POST :
$_POST['x.y'] = str_replace('_', '.', $_POST['x_y']);
  • Variables GET et COOKIE : Utilisez un modèle de substitution de variable globale dans votre Fichier .htaccess pour remplacer les traits de soulignement par des points avant que PHP n'analyse la requête :
RewriteEngine On
RewriteRule .* - [E=DOT:_]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn