PHP从URL获取数据

时间:2018-03-26 19:30:30

标签: php curl file-get-contents

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

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

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

  

PHP版本= 5.6.10-pl0

     

allow_url_fopen =开启

     

OpenSSL support = enabled

如果这可能是一个问题,那么该文件位于 HTTPS 服务器上。提前谢谢你们。

1 个答案:

答案 0 :(得分:1)

在本回答中,local指的是您的服务器,远程指向另一个(您尝试访问的服务器)。

从错误消息:

  

SSL23_GET_SERVER_HELLO:sslv3警报握手失败

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

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

检查远程服务器

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

然后你可以选择其中一些卷曲来使用(Source for code):

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

检查本地/您的服务器

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

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

更多链接供参考: