首頁 > 後端開發 > php教程 > 如何解決 PHP 請求和 Cookie 名稱中點的自動替換問題?

如何解決 PHP 請求和 Cookie 名稱中點的自動替換問題?

Linda Hamilton
發布: 2024-12-26 19:33:19
原創
177 人瀏覽過

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

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 還將以下字元替換為底線:

  • chr(32) ( )(空格)
  • chr(46) (.) (點)
  • chr(91) ([)(左方括號)
  • chr(128) - chr(159)(各種)

以上是如何解決 PHP 請求和 Cookie 名稱中點的自動替換問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板