Hardjuice
@Hardjuice
Верстальщик

Блокируются запросы к курсам валют?

Есть цены на сайте в USD , после чего парсится курс валют и цены становятся в рублях. Парсер выполняется каждый день для 3ёх разных сайтов с помощью Cron'a. Недавно парсер перестал работать и вытаскивать нужный курс. Что можете посоветовать? Причина в частых запросах или в чём?

Ошибка:
PHP Warning: file_get_contents(www.cbr-xml-daily.ru/daily_json.js): failed to open stream: Connection timed out in /home/users/9/9163419803/domains/c-60.ru/static/rater.php on line 4

Warning: file_get_contents(www.cbr-xml-daily.ru/daily_json.js): failed to open stream: Connection timed out in /home/users/9/9163419803/domains/c-60.ru/static/rater.php on line 4

Скрипт:
<?php
	$url = 'http://www.cbr-xml-daily.ru/daily_json.js';

	$contents = file_get_contents($url);
	$data = json_decode($contents, true);

	$json = array(
		'usd'	=> $data['Valute']['USD']['Value'],
		'eur' => $data['Valute']['EUR']['Value']
	);

	file_put_contents('/home/users/9/9163419803/domains/c-60.ru/static/rates.json', json_encode($json));
?>
  • Вопрос задан
  • 680 просмотров
Решения вопроса 1
@kudis
Bitrix developer
Не пользуйтесь file_get_contents()

вот рабочий вариант для CURL:
function curlRequest($url)
{
    $myCurl = curl_init();

    curl_setopt_array($myCurl, array(
        CURLOPT_URL => $url,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => false,
        CURLOPT_RETURNTRANSFER => true,
    ));
    $response = curl_exec($myCurl);
    curl_close($myCurl);

    return $response;
}

$url = 'http://www.cbr-xml-daily.ru/daily_json.js';

$contents = curlRequest($url);

$data = json_decode($contents, true);

var_dump($data);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Либо вас заблочил cbr-xml-daily, либо ваш шаред хостинг ввел ограничения на внешние запросы.

А вообще есть официальный API цбр, не понимаю зачем нужен какой-то ресурс посредник:
www.cbr.ru/scripts/XML_daily.asp
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы