Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die automatische Ersetzung von Punkten in Anforderungs- und Cookie-Namen durch PHP umgehen?
PHPs automatische Ersetzung von Punkten in Anfrage- und Cookie-Namen: Gibt es eine Lösung?
PHP ersetzt automatisch Punkte (.) in Anfragen und Cookie-Namen mit Unterstrichen (_), ein Verhalten, das problematisch sein kann.
Warum macht PHP das? Laut PHP.net sind Punkte keine gültigen Zeichen in PHP-Variablennamen, wie im folgenden Beispiel gezeigt:
$varname.ext; /* invalid variable name */
Um dieses Parsing-Problem zu vermeiden, ersetzt PHP Punkte durch Unterstriche.
Leider gibt es keine direkte Möglichkeit, dieses Verhalten zu deaktivieren. Die Lösung besteht darin, die Unterstriche in Ihrem PHP-Skript mithilfe von String-Manipulationsfunktionen wie str_replace manuell wieder in Punkte umzuwandeln:
<?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); ?>
Zusätzlich zu Punkten ersetzt PHP auch die folgenden Zeichen durch Unterstriche:
Das obige ist der detaillierte Inhalt vonWie kann ich die automatische Ersetzung von Punkten in Anforderungs- und Cookie-Namen durch PHP umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!