移除 "+" 字符是在 PHP 中回显 $_GET 变量时的正确做法吗?
P粉481815897
P粉481815897 2023-09-09 19:18:32
0
1
525

我有一个URL字符串,类似于https://example.com/path/?welcome_screen=1&email_address=something+else@example.com

在PHP中,我调用<?php echo $_GET['email_address']; ?>

这将产生something else@example.com

具体来说,电子邮件地址中的+被替换成了空格。

  1. 这是预期的吗?
  2. 如果是,是否有办法在上述的echo代码中防止这种情况发生?
  3. 还是应该在收集电子邮件地址时进行处理?

P粉481815897
P粉481815897

全部回复(1)
P粉032900484
  1. 是的,+ 是在URL中表示空格的一种方式。PHP在创建$_GET数据时会自动对值进行URL解码,并将其转换为空格,因为它假设这就是原始URL中的值应该表示的内容。

  2. 不,那时已经太晚了。

  3. 是的,您应该在将值包含在URL中之前进行URL编码,以便+不被视为特殊字符。如果是PHP生成URL,您可以使用urlencode()函数。大多数其他编程语言都有等效的内置函数。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板