Php 使用curl从SSL下载映像?

Php 使用curl从SSL下载映像?,php,ssl,curl,Php,Ssl,Curl,如何从curl(https站点)下载图像 文件保存在我的计算机上,但为什么为空(0KB) 您需要添加以下选项: curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 另外,将CURLOPT_HEADER设置为false并将CURLOPT_RETURNTRANSFER设置为true curl_setopt($ch, CURLOPT_RETURNTR

如何从curl(https站点)下载图像

文件保存在我的计算机上,但为什么为空(0KB)


您需要添加以下选项:

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
另外,将
CURLOPT_HEADER
设置为
false
并将
CURLOPT_RETURNTRANSFER
设置为
true

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
实际上应该是:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
所以curl知道它应该返回数据,而不是回显数据

此外,有时您还需要做更多的工作才能让curl接受SSL证书:

编辑:

根据您的使用情况,您还应该按照Alix Axel的建议将CURLOPT_HEADER设置为false


关于SSL,我希望您能花点时间阅读我建议的链接,因为有几种不同的方法来处理SSL,如果数据不敏感,建议的修复Alix可能是可以的,但会否定安全性,因为它会强制CURL接受任何服务器证书。

或者让CURL直接写入文件,节省必须存储在变量中的二进制数据,这可能会超过PHP的内存限制。请参阅:CURLOPT_file因为这是一种可怕的方法,所以忽略SSL警告。这是不安全的,不能这样做。相反,您应该设置证书并下载,强制SSL(如果可用)-始终。我使用了上述选项。但图像大小仍然是“0”。这对我来说很好,在我的情况下,不安全不是问题
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);