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中文网其他相关文章!