php - curl 返回 400 错误请求(带空格的 url)

标签 php curl

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

http://example.com/images/products/product 1.jpg

我知道在名称文件中使用用户空间是一种不好的做法,但这不是我的服务器,也不是我创建的这些文件。

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, urlencode($url));
echo $ret = curl_exec($ch);

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

已更新

$url = str_replace(' ', '+', $url);

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

最佳答案

这可能有用吗?

$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);

关于php - curl 返回 400 错误请求(带空格的 url),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12342149/

相关文章:

php - 使用 php 对 mysql 记录进行高级/技术排序

PHP PDO -> 准备好的查询返回错误(相同的查询未准备好工作)

javascript - 在哪里放置记录已成功更新的条件或消息

java - htmlunit 上的 Tor

c++ - 如何使用 cURL (C/C++) 从网页中获取特定行数

php - 使用 Guzzle 通过 Curl 请求传递客户端证书

curl - 从 curl 命令在 Keycloak 上创建用户

php - 代码更改时Docker Web服务器(nginx + php5.6)不更新

php - MySQL : CONCAT_WS (' ' , name_first, name_middle, name_last) 像 '%keyword%' 有问题

php - 无法在Docker容器中使用NGINX子域