-2

在过去的 2-3 个月里,我一直在使用此代码来获取所需的 json 数据变量。当 url 更改为 https:// 时,它会出错并且不会显示。有没有不同的方法从 http 获取 json url 和 php 的 https?我似乎找不到任何好的例子或文档。

<?
$btcjsonurl = "http://blockchain.info/stats?format=json";
$btcjson = file_get_contents($btcjsonurl,0,null,null);
$btcdata = json_decode($btcjson, true);
$btcdiff = $btcdata['difficulty'];
echo $btcdiff;
?>
4

2 回答 2

1

有什么错误?

看到这个(可能是骗局)

除非,有什么理由不能使用curl或类似的 php 客户端?

Https 需要 SSL 等额外的客户端实现,而所有 file_get_contents,在没有 $opts 的情况下调用,将在功能上执行读取文件流。例如,如果 SSL 证书中的主机名不是您传递给文件获取内容的链接中的主机名,则 https 的实现需要您 - 客户端 - 来验证这一点(通常通过在允许的主机列表中查找,您将需要手动写入)。但是因为你不是直接与客户合作,所以你没有机会处理这个问题。

另一条路线当然是使用stream_context_create,但这已在上面的链接中介绍,所以我不会重复。

希望这可以帮助。

于 2013-04-22T12:35:13.370 回答
0

最有可能的是,目标 URL 位于其 HTTPS 证书未使用 PHP 知道的提供商签署的服务器上。尝试将浏览器导航到该页面,并查看它是否通过 URL 显示挂锁。如果您收到任何安全警告,那么您肯定发现了阻止 PHP 下载内容的一件事。

于 2013-04-22T12:35:24.257 回答