За последние 24 часа нас посетили 22658 программистов и 1027 роботов. Сейчас ищут 707 программистов ...

Помогите с CURL

Тема в разделе "PHP для новичков", создана пользователем Владимир11, 16 янв 2019.

  1. Владимир11

    Владимир11 Активный пользователь

    С нами с:
    20 май 2018
    Сообщения:
    140
    Симпатии:
    0
    Здравствуйте ребята, подскажите мне нужно curl-ом вытащить определенные данные ну например рублевый курс монеты в сети нашел такую штуку
    PHP:
    1. <?php
    2.  
    3. //echo httpGet("https://api.coingecko.com/api/v3/coins/jsecoin?tickers=false&market_data=false&ath=rub&community_data=false&developer_data=false&sparkline=false&localization=false&description=false&announcement_url=false");
    4.  
    5. $target_url = "https://api.coingecko.com/api/v3/coins/jsecoin?";
    6. $ch = curl_init($target_url);
    7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    8. $response_data = curl_exec($ch);
    9. echo $response_data;
    10. if (curl_errno($ch) > 0) {
    11.    echo 'Ошибка curl: ' . curl_error($ch);
    12. }
    13. ?>
    Подскажите делаю это в первый раз правильно ли я это делаю, и как вывести не все как на скрине а только 1 значение и это значение передавать переменной

    upload_2019-1-16_11-48-7.png

    Спасибо, может в сети есть хоть какие то примеры 2й день в поисках
     
  2. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    Ты получил JSON, теперь нужно его преобразовать функцией json_decode()

    Напишешь так, то получишь на выходе объект:
    $response_data = json_decode($response_data);

    Напишешь так , то получишь массив на выходе:
    $response_data = json_decode($response_data, true);

    Структурируй вывод JSON, добавь теги <pre></pre>

    В общем бери код и скидывай скрин сюда, будет все в читаемом виде:

    PHP:
    1. <?php
    2. //echo httpGet("https://api.coingecko.com/api/v3/coins/jsecoin?tickers=false&market_data=false&ath=rub&community_data=false&developer_data=false&sparkline=false&localization=false&description=false&announcement_url=false");
    3. $target_url = "https://api.coingecko.com/api/v3/coins/jsecoin?";
    4. $ch = curl_init($target_url);
    5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    6. $response_data = curl_exec($ch);
    7.  
    8. $response_data = json_decode($response_data, true); //преобразуем в массив
    9.  
    10. echo "<pre>";
    11. var_dump($response_data);
    12. echo "</pre>";
    13.  
    14. if (curl_errno($ch) > 0) {
    15.    echo 'Ошибка curl: ' . curl_error($ch);
    16. }
    17. ?>
    Потом теги pre удалишь, они для красоты
     
  3. Владимир11

    Владимир11 Активный пользователь

    С нами с:
    20 май 2018
    Сообщения:
    140
    Симпатии:
    0


    я тут игрался игрался и вывелось вот таким способом
    PHP:
    1.   $jsonb = file_get_contents('https://api.coingecko.com/api/v3/coins/jsecoin');
    2.   $objb = json_decode($jsonb,true);
    3.   $btckurs = $objb['market_data']['current_price']['rub'];
     
  4. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    ну что. ну поздравляю, раз сам справился :)
     
    #4 yanuzay, 16 янв 2019
    Последнее редактирование: 16 янв 2019
  5. Владимир11

    Владимир11 Активный пользователь

    С нами с:
    20 май 2018
    Сообщения:
    140
    Симпатии:
    0
    Спасибо, сам доволен как слон )))