首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何让file_get_contents()与HTTPS一起工作?

如何让file_get_contents()与HTTPS一起工作?
EN

Stack Overflow用户
提问于 2009-12-30 00:23:29
回答 9查看 320.3K关注 0票数 113

我正在设置信用卡处理,需要使用CURL的变通方法。当我使用测试服务器(它没有调用SSL URL)时,下面的代码运行良好,但是现在当我使用HTTPS在工作服务器上测试它时,它失败了,并显示错误消息"failed to open stream“。

function send($packet, $url) {
  $ctx = stream_context_create(
    array(
      'http'=>array(
        'header'=>"Content-type: application/x-www-form-urlencoded",
        'method'=>'POST',
        'content'=>$packet
      )
    )
  );
  return file_get_contents($url, 0, $ctx);
}
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-12-30 01:58:23

尝试以下脚本,看看是否有适用于您的php脚本的https包装器。

$w = stream_get_wrappers();
echo 'openssl: ',  extension_loaded  ('openssl') ? 'yes':'no', "\n";
echo 'http wrapper: ', in_array('http', $w) ? 'yes':'no', "\n";
echo 'https wrapper: ', in_array('https', $w) ? 'yes':'no', "\n";
echo 'wrappers: ', var_export($w);

输出应该是这样的

openssl: yes
http wrapper: yes
https wrapper: yes
wrappers: array(11) {
  [...]
}
票数 94
EN

Stack Overflow用户

发布于 2016-08-02 20:25:59

$url= 'https://example.com';

$arrContextOptions=array(
      "ssl"=>array(
            "verify_peer"=>false,
            "verify_peer_name"=>false,
        ),
    );  

$response = file_get_contents($url, false, stream_context_create($arrContextOptions));

这将允许您从url获取内容,无论它是HTTPS。

票数 60
EN

Stack Overflow用户

发布于 2009-12-30 00:25:35

这可能是因为您的目标服务器没有有效的SSL证书。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1975461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档