首頁 > 後端開發 > php教程 > 如何在使用者輸入中保留 PHP 變數名稱中的點字元?

如何在使用者輸入中保留 PHP 變數名稱中的點字元?

Mary-Kate Olsen
發布: 2024-12-13 03:38:14
原創
312 人瀏覽過

How Can I Preserve Dot Characters in PHP Variable Names from User Input?

在GET、POST 和COOKIE 輸入中保留PHP 變數名稱中的點字元

在PHP 中,變數名稱中的點字(.)透過GET、POST 或COOKIE 傳遞的請求會自動替換為底線(_)。這在某些情況下可能會出現問題。

PHP 行為說明

根據 PHP 文檔,點在 PHP 變數名稱中不是有效字元。 PHP 將它們轉換為下劃線以防止語法錯誤。以下字元也會轉換為底線:

  • 空格 ( )
  • 方括號 ([)
  • 各種非 ASCII 字元

停用自動替換

不幸的是,沒有內建的 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中文網其他相關文章!

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