PHP:将字符串中的空格转换为%20?

mat*_*att 77 php string urlencode

如何将字符串中的空格转换为%20

这是我的尝试:

$str = "What happens here?";
echo urlencode($str);
Run Code Online (Sandbox Code Playgroud)

输出是"What+happens+here%3F",因此空格不表示为%20.

我究竟做错了什么?

Mat*_*hen 184

请改用此rawurlencode功能.

  • 请注意,如果您将其用于 url(而不是其查询部分),转换后的斜杠将导致 url 不起作用。因此,如果您只需要处理空格(可能是该 URL),我建议 str_replace。 (4认同)

Aln*_*tak 25

加号是URL参数中空格字符的历史编码,如函数帮助中所述urlencode().

同一页面包含您需要的答案 - rawurlencode()而是使用RFC 3986兼容编码.


Dav*_*mas 19

我相信,如果您需要使用%20变体,您可以使用rawurlencode().