在GET、POST 和COOKIE 輸入中保留PHP 變數名稱中的點字元
在PHP 中,變數名稱中的點字(.)透過GET、POST 或COOKIE 傳遞的請求會自動替換為底線(_)。這在某些情況下可能會出現問題。
PHP 行為說明
根據 PHP 文檔,點在 PHP 變數名稱中不是有效字元。 PHP 將它們轉換為下劃線以防止語法錯誤。以下字元也會轉換為底線:
停用自動替換
不幸的是,沒有內建的 PHP 配置選項來停用這種自動替換行為。不過,您可以在腳本中手動將下劃線轉換回點。
解決方案:後處理替換
方法一:使用str_replace
以下程式碼使用 str_replace
<?php $var_with_underscores = $_SERVER['REQUEST_URI']; $var_with_dots = str_replace('_', '.', $var_with_underscores);
以下程式碼使用 str_replace將所有底線替換為點函數:
方法二:使用preg_replace
<?php $var_with_underscores = $_SERVER['REQUEST_URI']; $var_with_dots = preg_replace('/_/', '.', $var_with_underscores);
以上是如何在使用者輸入中保留 PHP 變數名稱中的點字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!