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 ?
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 :
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!