在 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);
方法二:使用preg_replace
也可以使用正则表达式来执行替换:
<?php $var_with_underscores = $_SERVER['REQUEST_URI']; $var_with_dots = preg_replace('/_/', '.', $var_with_underscores);
以上是如何在用户输入中保留 PHP 变量名称中的点字符?的详细内容。更多信息请关注PHP中文网其他相关文章!