Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die automatische Ersetzung von Punkten in Anforderungs- und Cookie-Namen durch PHP umgehen?

Wie kann ich die automatische Ersetzung von Punkten in Anforderungs- und Cookie-Namen durch PHP umgehen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-26 19:33:19177Durchsuche

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

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:

  • chr(32) ( ) (Leerzeichen)
  • chr(46) (.) (Punkt)
  • chr(91) ([) (offene eckige Klammer)
  • chr(128) - chr(159) (verschiedene)

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn