Добрый день. Появилась задача осуществить автоматическое обновление курса валют в БД. Курс валют берутся из официального сайта Министерства финансов Украины. Для того что бы получить данные о курсах валю есть вот такая ссылка c API ключем: http://api.minfin.com.ua/mb/54a8480d65cca046502762dd5ac8c4a6dd1a51b4 На сервере настроен крон, который каждый день в 10:30 должен обращаться к этой ссылке а в ответ получать массив JSON. Крон выглядит следующим образом (Внимание, сайт на wordpress): PHP: add_filter( 'cron_schedules', 'interval'); function interval( $raspisanie ) { $raspisanie['period'] = array( 'interval' => 30, 'display' => 'МИНФИН' ); return $raspisanie; } if( !wp_next_scheduled('min_fin') ) wp_schedule_event( time(), 'period', 'min_fin' ); add_action( 'min_fin', 'min_fin_send'); function min_fin_send() { // здесь нужно отправить запрос и получить ответ } Я ранее всегда работал с POST, GET запросами из js, в основном с помощью ajax, но тут конечно же js использовать не представляется возможным. С запросам из PHP некогда мне сталкиваться не доводилось, по этому я даже не понимаю как это должно выглядеть. Пытался что-то делать, вот так (но это нечего мне не дает): PHP: $myCurl = curl_init(); curl_setopt_array($myCurl, array( CURLOPT_URL => 'http://api.minfin.com.ua/mb/54a8480d65cca046502762dd5ac8c4a6dd1a51b4', CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query() )); $response = curl_exec($myCurl); curl_close($myCurl); echo "Ответ на Ваш запрос: ".$response; Но я не понимаю как этот метод работает, из-за этого скорее всего что-то не так делаю. Пожалуйста подскажите что я делаю не так
Пошел по логике, заменил CURLOPT_POST на CURLOPT_GET PHP: <? $myCurl = curl_init(); curl_setopt_array($myCurl, array( CURLOPT_URL => 'http://api.minfin.com.ua/mb/54a8480d65cca046502762dd5ac8c4a6dd1a51b4', CURLOPT_RETURNTRANSFER => true, CURLOPT_GET => true, CURLOPT_POSTFIELDS => http_build_query() )); $response = curl_exec($myCurl); curl_close($myCurl); echo "Ответ на Ваш запрос: ".$response; ?> Но видимо логика подвела, потому что это не работает
Код (Text): <? $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://api.minfin.com.ua/mb/54a8480d65cca046502762dd5ac8c4a6dd1a51b4'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $output = curl_exec($ch); curl_close($ch); print_r($output); ?>
Спасибо большое! Все работает Хотя есть еще одна не понятка. Все работает, НО при этом выдает ошибку "Warning: curl_setopt_array(): Array keys must be CURLOPT constants or equivalent integer values", - не могу понять что ее вызывает --- Добавлено --- Большое спасибо! Ваш вариант решил проблему)