首页 > 解决方案 > PHP CURL HTTPS 问题

问题描述

我在访问大量 https 站点以下载页面,尤其是文件时遇到了很大的问题。

我在互联网上对这个问题进行了多次搜索,其中大部分都说同样的话:

使用以下内容:

curl_setopt($ch, CURLOPT_SSLVERSION,3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);

但这似乎对我不起作用。

我也尝试过下载 SSL 证书,但这也无济于事。我也将我的 curl 库升级到了最新版本,因为我知道这可能会导致问题。

我正在使用 PHP5,我不能选择升级到 PHP5。

这是我的代码示例和我尝试访问的网址之一:

<?php
$file_source="https://www.faa.gov/"
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $file_source);
curl_setopt($ch, CURLOPT_REFERER,  $file_source);
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
$data = curl_exec ($ch);
$error = curl_error($ch); 
curl_close ($ch);
?>

任何人都可以帮忙,因为我正在为此撕扯头发。

MTIA 亚历克西斯

标签: phpcurlhttps

解决方案


这对我来说很好用:

$fullurl="https://www.faa.gov/";

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, 0);

curl_setopt($ch, CURLOPT_URL, $fullurl);

$returned = curl_exec($ch);
var_dump($returned);
curl_close ($ch);

推荐阅读