我为此收到同样的错误,请建议
$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;
当您的 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;
如注释中所述,您的网址不包含编码字符(空格)。
溶液
在设置CURLOPT_URL
时对 URL 进行编码:
curl_setopt($ch, CURLOPT_URL, urlencode($url));
还可以使用 curl_escape()
对查询字符串部分进行编码。
引用
- cURL 在处理带有冒号的 URL 源时出现问题的答案。
您需要在发送请求之前对 URL 进行编码
<?php
$url=urlencode("http://domain/file name.xml");
?>
乌伦科
这里的答案建议使用url_encode或curl_escape函数。如果你想符合 RFC 3986,请改用 rawurlencode() 函数。这有助于 PHP 7 中的 curl 请求。哎呀,它可以帮助别人。