php - 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 亚历克西斯
解决方案
这对我来说很好用:
$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);
推荐阅读
- javascript - MeteorJS - 添加 SlickJS afterChange 事件
- laravel-5 - Laravel 在从 Gmail API 发送电子邮件时使用视图
- postgresql - DataGrip 无法识别 PostgreSQL 数据类型
- swift - swift 从终端抛出 python 错误
- python-imaging-library - 奇妙的设计师 API
- reactjs - INVALID_CLIENT:运行 GitHub 页面应用程序时出现无效的重定向 URI 错误。使用 Spotify API
- java - 运行 Maven 项目时出错,添加 JasperReports 依赖项
- html - 如何使用 flexbox 将 2 个项目居中和 1 个放在右侧?
- python - Pygame,python,全局变量,崩溃
- junit - AssertJ to Hamcrest equivalency (only for Spring MVC Test): How test each POJO item of a collection (with dates)