PHP urlencode无法正常工作

时间:2017-02-06 18:26:07

标签: php urlencode

我有一个带空格字符的网址,我想在进行API调用时正确编码(在这种情况下,将''替换为'%20',以便正确处理空格字符。

$url = 'https://www.someapi.com?param=this and that';

当使用urlencode($ url)函数时,我得到了这个不明显的URL表示

"https%3A%2F%2..."

我最终无法解决。

enter image description here ........

PHP中是否有一个URL编码函数只替换空格和引号而不是对整个字符串进行突然更改?

1 个答案:

答案 0 :(得分:0)

您可以解析请求网址,只对查询字符串“值”进行编码。

$url = "https://www.someapi.com?param=this and that";
$baseUrl = explode("?",$url)[0];
parse_str(parse_url($url,PHP_URL_QUERY),$args);
foreach ($args as $key=>&$arg){
    $arg= urlencode($arg);
} 
echo  $baseUrl."?".http_build_query($args);

结果:

https://www.someapi.com?param=this%2Band%2Bthat