【问题标题】:PHP get_contents() ErrorPHP get_contents() 错误
【发布时间】:2016-09-02 05:29:24
【问题描述】:

使用 PHP get_contents() 时出现以下错误:

我在这里缺少什么?它在带有 XAMPP 的本地服务器中完美运行。

PHP 版本 5.3.29

SSL 版本 OpenSSL/0.9.8b

警告:file_get_contents() [function.file-get-contents]: SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败/home/XXXXXX/public_html/test.php 在第 21 行

警告:file_get_contents() [function.file-get-contents]:无法在第 21 行的 /home/xxxxx/public_html/test.php 中启用加密

警告:file_get_contents(https://.....XXXXXX) [function.file-get-contents]:无法打开流:操作失败

$url_api        = "XXXXXXXXXXXXXX";

$getResult = array( 
"ssl" => array( 
    "verify_peer"      => false, 
    "verify_peer_name" => false, 
),  
'http'=>array(
    'method'=>"GET",    
    'header'=>"XXXXXX: xxxxxxxxxx\r\n"  
));
$getContext = stream_context_create($getResult);
$getResponse = file_get_contents($url_api, false, $getContext);

【问题讨论】:

  • 你是否为你的 php 安装了 openssl 扩展?
  • 是的!启用 OpenSSL 支持我在 phpinfo() 中找到了它。我在上面添加了PHP版本...是因为较低的php版本吗?我用 CURL 测试过,它从来没有返回任何信息。 :)
  • allow_url_fopen 开启?
  • 是的,本地值和主值都打开。
  • 不太确定,但here 是类似的错误

标签: php


【解决方案1】:

我认为问题不在于您的代码。我在我的 Laravel vagrant box 上对其进行了测试,效果很好。我认为问题出在 $url_api 变量的数据中。

【讨论】:

  • 我在我的本地服务器上测试了它,它正在工作,但是当我在 LIVE 服务器上测试它时,它会抛出错误。我检查了 SSL,一切都很好。
【解决方案2】:

检查你的 php.ini 文件,取消注释

;extension=php_openssl.dll

extension=php_openssl.dll

如果这已经完成,请检查您的防火墙是否允许连接。 简单的方法是使用telnet

【讨论】:

  • Viyog,请检查从主机服务器到要在其上打开流的服务器的防火墙。防火墙应该双向打开 433 端口。
猜你喜欢
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 2013-03-09
  • 2011-03-30
  • 2011-05-26
  • 2013-08-27
  • 2012-06-17
  • 2015-04-04
相关资源
最近更新 更多