채택완료

바이낸스 api php 질문드립니다.

2022-06-06 (월) 20:40:58 2,175
Copy
$url = "https://api.binance.com/api/v3/ticker/price";

$data = file_get_contents($url);

$json = json_decode($data,true);

$btc = '';
$eth = '';
$ltc = '';
foreach($json as $k => $v){

    if($v['symbol'] == 'BTCUSDT'){
        $btc = $v['price'];
    }elseif($v['symbol'] == 'ETHUSDT'){
        $eth = $v['price'];
    }elseif($v['symbol'] == 'LTCUSDT'){
        $ltc = $v['price'];
    }

}

echo 'Binance Today USD'.$eth;

이렇게 했는데 아무런 반응이 없어요 불러오지를 못하네요 ㅠㅠ

에러도 안나고 ㅠ

무슨 문제일가요?

|

답변 4개 / 댓글 5개

채택된 답변
+20 포인트
2022-06-07 (화) 19:03:14


카페24면  빈페이지에 file_get_content로 가져오는 데이터 먼저 확인해보세요

에러나시면

위에 적어놓은 소스에 

Copy
$data = file_get_content($url) 
$json = json_decode($data,true);

부분 주석처리하시고

아래소스로 넣고 해보세요

Copy
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
curl_close($ch);

$json = json_decode($result,true);

답변에 대한 댓글 1개

와대박 너무 잘됩니다. ㅠㅠ 너무너무 감사합니다.

저는 정상적으로 나옵니다.

다만 내용이 많아서 조금 늦게 결과가 나옵니다.

결과 값은 

Binance Today USD1754.59000000   <-- 요렇게 나오네요

내용을 보면

    [12] => Array
        (
            [symbol] => ETHUSDT
            [price] => 1754.59000000
        )

요렇게 배열로 되었는데 부분을 가지고 옵니다 참고 바랍니다.

답변에 대한 댓글 1개

혹시 어디서 테스트 해보셨어요? ㅠㅠ
저는 카페24 웹호스팅에 올려서 테스트 해보았거든요 ㅠㅠ
2022-06-07 (화) 10:32:55

잘나오는듯 한데요

Copy
function getCoin($coin){

    if(!$coin){

        return 0;

    }

    $url = "https://api.binance.com/api/v3/ticker/price";

    $data = file_get_contents($url);

    $json = json_decode($data,true);

 

    $filter_coin = array_filter($json, function($a) use ($coin) {

        return $a['symbol'] == $coin;

    });

    $filter_coin = array_values($filter_coin);

    $return_price = (isset($filter_coin[0]['price']) && $filter_coin[0]['price'])?$filter_coin[0]['price'] : 0;

    return $return_price;

}

echo getCoin('BTCUSDT');

echo "<br/>";

echo getCoin('ETHUSDT');

echo "<br/>";

echo getCoin('LTCUSDT');

답변에 대한 댓글 1개

아 버그는 없는데 0으로 나오는거 같아요! ㅠㅠ
2022-06-06 (월) 21:14:21
ETHBTC

오타인가 살펴 보세요.

답변에 대한 댓글 2개

오타 아니예요
https://api.binance.com/api/v3/ticker/price
이거 찍어보면 나옵니다.
혹시 모르니
foreach($json... 이전에
print_r( $json)으로 한번 확인해 보세요.

답변을 작성하려면 로그인이 필요합니다.