【问题标题】:file_get_contents() returns "failed to open stream" when hitting HTTPS访问 HTTPS 时,file_get_contents() 返回“打开流失败”
【发布时间】:2011-02-18 00:57:35
【问题描述】:

当我在 HTTPS URL 上调用file_get_contents() 时,它返回“无法打开流”。

Warning: file_get_contents(https://google.com) [function.file-get-contents]: failed to open stream: No error in E:\\htdocs\callback3.php on line 5

相同的调用使用非 SSL URL。

起初,我认为这是我的虚拟主机的安全问题,但我已经用 phpinfo() 验证了 allow url open 确实是允许的。我也试过这段代码并验证它有效:

有人知道为什么 file_get_contents() 使用 HTTPS URL 失败了吗?

更新:人们正确地指出这是一个 HTTPS 问题。我的虚拟主机声称这应该可以工作,但不知道如何解决这个问题。任何人都可以为他们的 IIS7 设置提供具体指导吗?

【问题讨论】:

    标签: php facebook iis-7


    【解决方案1】:

    这可能是因为他们使用的是安全协议https。这很奇怪,在他们的例子中,facebook 给出了类似的例子。

    【讨论】:

    • +1,PHP 需要编译 SSL 才能使 SSL 工作。虽然,在我的开发服务器上,缺少 SSL 给出了 failed to open stream: Invalid argument file_get_contents 的错误。但是请仔细检查您的 PHPinfo 输出是否支持 SSL。
    • 来自PHP manual: "注意:如果你编译时支持 OpenSSL,从 PHP 4.3.0 开始支持 HTTPS"
    • @nikc:是的,就是这样,并添加了有用的信息。谢谢
    • 谢谢,我希望错误信息能提供更多信息!我查看了 phpinfo() 但不知道在哪里寻找 SSL 支持信息。但是,鉴于 https 未在“注册的 PHP 流”中列出,我假设它不受支持。我有一封电子邮件给网络托管商,看看是否可以更改。
    • 我的 webhoster 在 Windows 堆栈上,因此运行 IIS 7。他们不知道如何解决此 SSL 支持并声称它应该与失败相反。谁有具体的方向我可以给他们?
    猜你喜欢
    • 2010-10-16
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多