Ich habe eine URL-Zeichenfolge ähnlich wie https://example.com/path/?welcome_screen=1&email_address=something+else@example.com
In PHP rufe ich <?php echo $_GET['email_address']; ?>
Dadurch entsteht something else@example.com
Konkret wurde das + in der E-Mail-Adresse durch ein Leerzeichen ersetzt.
echo
Code eine Möglichkeit, dies zu verhindern?
是的,
+
是在URL中表示空格的一种方式。PHP在创建$_GET
数据时会自动对值进行URL解码,并将其转换为空格,因为它假设这就是原始URL中的值应该表示的内容。不,那时已经太晚了。
是的,您应该在将值包含在URL中之前进行URL编码,以便
+
不被视为特殊字符。如果是PHP生成URL,您可以使用urlencode()
函数。大多数其他编程语言都有等效的内置函数。