3

我遇到了同样的错误,请建议

$url="http://domain.com/manage/File Name.xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);                
curl_setopt($ch, CURLOPT_URL, $url);    // get the url contents
$data = curl_exec($ch); // execute curl request
curl_close($ch);
echo $data;
4

4 回答 4

6

当您的 curl url 包含空格时,就会出现此错误。您必须对 url 进行编码以删除空格。

$base_url = "http://domain.com/manage/";
$url = "File Name.xml";
$ch = curl_init();
$final_url = $base_url . curl_escape($ch, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);                
curl_setopt($ch, CURLOPT_URL, $url);    // get the url contents
$data = curl_exec($ch); // execute curl request
curl_close($ch);
echo $data;
于 2014-12-19T06:37:13.023 回答
2

如评论中所述,您的 URL 不包含编码字符(空格)。

解决方案

设置时对您的 URL 进行编码CURLOPT_URL

curl_setopt($ch, CURLOPT_URL, urlencode($url));

您还可以使用curl_escape()对查询字符串部分进行编码。

参考

于 2013-09-08T16:02:37.433 回答
1

您需要在发送请求之前对您的 URL 进行编码

<?php
$url=urlencode("http://domain/file name.xml");
?>

网址代码

于 2013-09-08T15:41:15.627 回答
1

这里的答案建议使用 url_encode 或 curl_escape 函数。如果您想符合 RFC 3986,请改用rawurlencode () 函数。这有助于 PHP 7 中的 curl 请求。希望它可以帮助其他人。

于 2018-07-14T15:22:34.057 回答