-2

過去 2 ~ 3 か月間、このコードを使用して、必要な json データ変数を取得しています。URL が https:// に変更されると、エラーが発生して表示されません。json url と php の http から 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 などのために追加のクライアント側実装を必要としますが、$opts なしで呼び出されるすべての file_get_contents は、ファイル ストリームの読み取りとして機能します。たとえば、SSL 証明書のホスト名が、コンテンツを取得するために渡すリンクのホスト名ではない場合、https の実装では、クライアントがこれを確認する必要があります (通常は、許可されたホストのリストを検索することによって確認します)。手動で書く必要があります)。しかし、クライアントと直接仕事をしているわけではないので、これを処理する機会はありません。

もちろん、別の方法としてstream_context_createを使用することもできますが、それは上記のリンクで説明されているので、繰り返しません。

お役に立てれば。

于 2013-04-22T12:35:13.370 に答える
0

ほとんどの場合、ターゲット URL は、PHP が認識しているプロバイダーで HTTPS 証明書が署名されていないサーバー上にあります。ブラウザでそのページに移動して、URL に南京錠が表示されるかどうかを確認してください。セキュリティ警告が表示された場合は、PHP がコンテンツをダウンロードできない原因が 1 つ見つかったことになります。

于 2013-04-22T12:35:24.257 に答える