Maison >développement back-end >tutoriel php >Comment puis-je contourner le remplacement automatique par PHP des points dans les noms de requêtes et de cookies ?

Comment puis-je contourner le remplacement automatique par PHP des points dans les noms de requêtes et de cookies ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 19:33:19177parcourir

How Can I Work Around PHP's Automatic Replacement of Dots in Request and Cookie Names?

Remplacement automatique des points dans la requête et des noms de cookies par PHP : existe-t-il une solution ?

PHP remplace automatiquement les points (.) dans la requête et les noms de cookies avec des traits de soulignement (_), un comportement qui peut être problématique.

Pourquoi PHP fait-il cela ? Selon PHP.net, les points ne sont pas des caractères valides dans les noms de variables PHP, comme le montre l'exemple ci-dessous :

$varname.ext;  /* invalid variable name */

Pour éviter ce problème d'analyse, PHP remplace les points par des traits de soulignement.

Malheureusement, il n'existe aucun moyen direct de désactiver ce comportement. La solution consiste à reconvertir manuellement les traits de soulignement en points dans votre script PHP à l'aide de fonctions de manipulation de chaînes telles que str_replace :

<?php
$request_uri = $_SERVER['REQUEST_URI'];
$get_vars = $_GET;

// Convert underscores back to dots in GET variables
foreach ($get_vars as $key => $value) {
  $key = str_replace('_', '.', $key);
  $get_vars[$key] = $value;
}

// Echo the modified GET variables
print_r($get_vars);
?>

En plus des points, PHP remplace également les caractères suivants par des traits de soulignement :

  • chr(32) ( ) (espace)
  • chr(46) (.) (point)
  • chr(91) ([) (crochet ouvert)
  • chr(128) - chr(159) (divers)

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