На днях возникла необходимость получить данные курса валют с помощью PHP используя прокси – сервер. Вариант работы через прокси / proxy в PHP я знаю только один и это использование cURL библиотеки.
Содержание:
Какую задачу должен решать скрипт
Скрипт должен обращаться к сервису с курсами валют через прокси-сервер, получать ответ в формате JSON, декодировать его и выводить на экран курс доллара к рублю на сегодняшний день.
Что необходимо для работы скрипта
- PHP версии от 5.4
- Библиотека cURL
- Прокси (взять бесплатно можно тут: https://hidemy.name/ru/proxy-list/)
Получение данных через прокси – сервер с авторизацией
<?
/*
Скрипт получения курса доллара к рублю через прокси - сервер
Поддержка в телеграм @yakovtsov или на сайте yakovtsov.ru
*/
/* Настройки подключения */
// Адрес сайта для обращения (в примере: http://www.cbr.ru)
$connect_url = 'https://www.cbr-xml-daily.ru/daily_json.js';
$server_proxy = 'pp5.yakovtsov.ru:8306'; // Сервер:порт
$proxy_auth = 'uc4w1wer2x3:ndm4e0jbe'; // Логин:пароль
$date = date("d/m/Y"); // Текущая дата
/* Запускаем CURL */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $connect_url);
// Добавляем настройки если наш сайт работает через SSL (https://)
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// Подключаемся к прокси-серверу
curl_setopt($ch, CURLOPT_PROXY, $server_proxy);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_auth);
// Отправляем запрос
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$print_curl = curl_exec($ch);
// Выводим ответа сервера
$print_curl= json_decode($print_curl, true);
// Получаем курс USD к рублю
$get_usd = $print_curl['Valute']['USD']['Value'];
// Выводим данные
echo "Курс доллара на ".$date." = ".$get_usd." руб.";
// Закрываем соединение
curl_close($ch);
Получение данных через прокси – сервер без авторизации
<?
/*
Скрипт получения курса доллара к рублю через прокси - сервер
Поддержка в телеграм @yakovtsov или на сайте yakovtsov.ru
*/
/* Настройки подключения */
// Адрес сайта для обращения (в примере: http://www.cbr.ru)
$connect_url = 'https://www.cbr-xml-daily.ru/daily_json.js';
$server_proxy = 'pp3.yakovtsov.ru:8080'; // Сервер:порт
$date = date("d/m/Y"); // Текущая дата
/* Запускаем CURL */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $connect_url);
// Добавляем настройки если наш сайт работает через SSL (https://)
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// Подключаемся к прокси-серверу
curl_setopt($ch, CURLOPT_PROXY, $server_proxy);
// Отправляем запрос
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$print_curl = curl_exec($ch);
// Выводим ответа сервера
$print_curl= json_decode($print_curl, true);
// Получаем курс USD к рублю
$get_usd = $print_curl['Valute']['USD']['Value'];
// Выводим данные
echo "Курс доллара на ".$date." = ".$get_usd." руб.";
// Закрываем соединение
curl_close($ch);
Вышеизложенный скрипт легко можно адаптировать под любые задачи. Например для проверки позиций в Яндексе или работы с API Вконтакте.
Если у вас возникнут вопросы связанные с работой скрипта, пишите в комментариях или мне в телеграм.