Maison >développement back-end >tutoriel php >Comment puis-je conserver les caractères points dans les noms de variables PHP à partir des entrées utilisateur ?

Comment puis-je conserver les caractères points dans les noms de variables PHP à partir des entrées utilisateur ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-13 03:38:14375parcourir

How Can I Preserve Dot Characters in PHP Variable Names from User Input?

Conservation des caractères points dans les noms de variables PHP à partir des entrées GET, POST et COOKIE

En PHP, les caractères points (.) dans les noms de variables transmis via les requêtes GET, POST ou COOKIE sont automatiquement remplacés par des traits de soulignement (_). Cela peut être problématique dans certains scénarios.

Explication du comportement de PHP

Selon la documentation de PHP, les points ne sont pas des caractères valides dans les noms de variables PHP. PHP les convertit en traits de soulignement pour éviter les erreurs de syntaxe. Les caractères suivants sont également convertis en traits de soulignement :

  • Espace ( )
  • Crochet ouvert ([)
  • Divers caractères non-ASCII

Désactivation du remplacement automatique

Malheureusement, il y a Il n'y a pas d'option de configuration PHP intégrée pour désactiver ce comportement de remplacement automatique. Cependant, vous pouvez reconvertir manuellement les traits de soulignement en points dans votre script.

Solution : remplacement après traitement

Méthode 1 : utilisation de str_replace

Le code suivant remplace tous les traits de soulignement par des points en utilisant str_replace function :

<?php
$var_with_underscores = $_SERVER['REQUEST_URI'];
$var_with_dots = str_replace('_', '.', $var_with_underscores);

Méthode 2 : Utilisation de preg_replace

Vous pouvez également utiliser une expression régulière pour effectuer le remplacement :

<?php
$var_with_underscores = $_SERVER['REQUEST_URI'];
$var_with_dots = preg_replace('/_/', '.', $var_with_underscores);

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