PHP 从 URL 获取数据

PHP fetching data from URL

我在从 URL 获取数据时遇到问题。当我在浏览器中输入 URL 时,文件通常会下载到我的计算机上,但是当我尝试在我的代码中访问它时,我得到的响应是 FALSE,没有错误只是 bool(false) 响应。它是 ICAL 同步的功能,3 或 4 个 url 很好,但那个只是没有获取数据。尝试使用 file_get_contentsCURL。这是 CURL 函数:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    curl_close($ch);

以下是关于服务器的一些信息:

PHP Version = 5.6.10-pl0

allow_url_fopen = On

OpenSSL support = enabled

是的,文件在 HTTPS 服务器上,如果这可能是个问题。提前谢谢大家。

在此答案中,本地是指您的服务器,远程是指另一台服务器(您尝试访问的服务器)。

来自错误信息:

SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

您的客户端和服务器实现似乎无法就要使用的通用密码套件达成一致。这通常意味着一种实现有点过时。

远程证书没有问题。这会产生不同的错误消息。

检查远程服务器

您可以使用例如 SSL Server Test 来确定远程服务器使用的协议版本和密码。

然后你可以 select 其中一些供 curl 使用 (Source for code):

curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'ECDHE-RSA-AES128-GCM-SHA256,...');

检查 local/your 服务器

您说您正在使用 PHP 5.6.10。 这有点过时了。(它于 2015 年 6 月 11 日发布)。当前 5.6 版本分支为 5.6.34。如果我是你我会考虑升级。

来自 SSL 服务器测试:远程服务器只接受 TLS1.2。因此,您还应该考虑升级您的 OpenSSL 安装。

更多参考链接: