Curl返回400个错误请求(带空格的url)

yAn*_*Tar 5 php curl

当我使用curl库并尝试从url获取图像时,我得到400错误的请求错误.我发现问题在于编码网址.但在我的情况下它不起作用,因为我的网址 - 它是服务器端图像的路径 - 就像

http://example.com/images/products/product 1.jpg
Run Code Online (Sandbox Code Playgroud)

我理解名称文件中的用户空间是不好的做法,但它不是我的服务器而不是我创建这些文件.

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, urlencode($url));
echo $ret = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)

当我使用urlencode函数时 - curl返回http_code = 0

更新

$url = str_replace(' ', '+', $url);
Run Code Online (Sandbox Code Playgroud)

不起作用,服务器返回404错误.

小智 19

这可能有用吗?

$url = 'http://host/a b.img';
$url = str_replace(" ", '%20', $url);

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
echo $ret = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)