2017-12-05 6 views
-4

ビットコインの価格を得るために、次のコードを使用していますが、オフラインで動作していますが、サーバでは動作しません。ビットコインレートのビットコインAPI

$api = "http://blockchain.info/ticker"; 
$json = file_get_contents($api); 
$data = json_decode($json, TRUE); 
$rate = $data["USD"]["15m"]; 
$symbol = $data["USD"]["symbol"]; 

echo $rate.$symbol; 
?> 
+0

代わりにサーバーで何が起こっていますか?エラーメッセージはありますか? –

+0

いいえエラーはありません..、localhostの表示値ですが、サーバーが値を取得していません – aniljat

+1

https://blockchain.info/tickerを使ってみましたか?サーバーのエラーログを調べましたか? –

答えて

-1

このメソッドは、他のサーバーへの要求を実行するために安全ではありません。 file_get_contentsの代わりにcurlを使用する必要があります。ところで、まだあなたがこのアプローチを維持したい場合は、私はカールを使用する場合のサポートのために、すべての

$url = "http://blockchain.info/ticker"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_URL,$url); 
$result=curl_exec($ch); 
curl_close($ch); 
$data = json_decode($result, TRUE); 
$rate = $data["USD"]["15m"]; 
$symbol = $data["USD"]["symbol"]; 
echo $rate.$symbol; 

感謝を解決

+1

file_get_contentsとcurlを使ったアプローチの違い?どちらも両方とも外部リソースからデータを収集します。どちらもURLからデータを読み込みます。 –

+0

通常、file_get_contentsはサーバーからファイルを読み取るために使用され、セキュリティホールがアプリケーションに表示された場合、攻撃者はリモートコードを注入できますfile_get_contentsがhttp/s呼び出しを受け入れるように設定されています) –

+0

申し訳ありませんが、curlがfile_get_contentsが開いたままの神秘的なセキュリティホールを避けるために役立つ箇所はありません。両方ともファイルを読み込むだけで、リモートコードは実行されません。アプリケーションに開くURLを挿入できる場合、両方の実行でそのURLが呼び出されます。 –

0

allow_url_fopenをを設定php.iniの中でそれを有効にすることができます。..

関連する問題