我有一个URL字符串,类似于https://example.com/path/?welcome_screen=1&email_address=something+else@example.com
在PHP中,我调用<?php echo $_GET['email_address']; ?>
这将产生something else@example.com
具体来说,电子邮件地址中的+被替换成了空格。
echo
代码中防止这种情况发生?P粉0329004842023-09-10 12:11:53
是的,+
是在URL中表示空格的一种方式。PHP在创建$_GET
数据时会自动对值进行URL解码,并将其转换为空格,因为它假设这就是原始URL中的值应该表示的内容。
不,那时已经太晚了。
是的,您应该在将值包含在URL中之前进行URL编码,以便+
不被视为特殊字符。如果是PHP生成URL,您可以使用urlencode()
函数。大多数其他编程语言都有等效的内置函数。