PHP 自動替換請求和 Cookie 名稱中的點:有解決方案嗎?
PHP 自動替換請求中的點(.)以及帶有下劃線 (_) 的 cookie 名稱,這種行為可能會出現問題。
為什麼會這樣PHP 能做到這一點嗎?根據 PHP.net,點在 PHP 變數名稱中不是有效字符,如下例所示:
$varname.ext; /* invalid variable name */
為了避免此解析問題,PHP 將點替換為下劃線。
不幸的是,沒有直接的方法來停用此行為。解決方案是在PHP 腳本中使用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); ?>
除了點之外,PHP 還將以下字元替換為底線:
以上是如何解決 PHP 請求和 Cookie 名稱中點的自動替換問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!