我以为我可以使用简单的 http_build_query
来编码数组中的一些 GET 参数,但显然 enc_type
似乎已添加到 PHP 5.4 中。不幸的是,我使用的是 PHP 5.3.10。
问题是我需要用空格编码的参数是 %20
而不是 +
。在不使用 http_build_query
的情况下正确编码参数的任何好的快速解决方案?
最佳答案
由于 URL 在 http_build_query
返回时被编码,所以 +
总是且只是空格,你可以用 str_replace
链接它:
$query = str_replace('+', '%20', http_build_query($arr));
如果你不想对 ~
也进行编码:
$query = str_replace(
array('+', '%7E'),
array('%20', '~'),
http_build_query($arr)
);
关于php - PHP 5.4 之前使用 PHP_QUERY_RFC3986 的 HTTP 构建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9265192/