Получаем данные через прокси – сервер на PHP

На днях возникла необходимость получить данные курса валют с помощью PHP используя прокси – сервер. Вариант работы через прокси в PHP я знаю только один и это использование cURL библиотеки.

Какую задачу должен решать скрипт

Скрипт должен обращаться к сервису с курсами валют через прокси-сервер, получать ответ в формате JSON, декодировать его и выводить на экран курс доллара к рублю на сегодняшний день.

Что необходимо для работы скрипта

Получение данных через прокси – сервер с авторизацией

<?
/* 
Скрипт получения курса доллара к рублю через прокси - сервер
Поддержка в телеграм @yakovtsov или на сайте yakovtsov.ru
*/

/* Настройки подключения */
$connect_url = 'https://www.cbr-xml-daily.ru/daily_json.js'; // Адрес сайта для обращения (в примере: http://www.cbr.ru)
$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);
$get_usd = $print_curl['Valute']['USD']['Value']; // Получаем курс USD к рублю
echo "Курс доллара на ".$date." = ".$get_usd." руб."; // Выводим данные

// Закрываем соединение
curl_close($ch);

Получение данных через прокси – сервер без авторизации

<?
/* 
Скрипт получения курса доллара к рублю через прокси - сервер
Поддержка в телеграм @yakovtsov или на сайте yakovtsov.ru
*/

/* Настройки подключения */
$connect_url = 'https://www.cbr-xml-daily.ru/daily_json.js'; // Адрес сайта для обращения (в примере: http://www.cbr.ru)
$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);
$get_usd = $print_curl['Valute']['USD']['Value']; // Получаем курс USD к рублю
echo "Курс доллара на ".$date." = ".$get_usd." руб."; // Выводим данные

// Закрываем соединение
curl_close($ch);

Вышеизложенный скрипт легко можно адаптировать под любые задачи. Например для проверки позиций в Яндексе или работы с API Вконтакте.

Если у вас возникнут вопросы связанные с работой скрипта, пишите в комментариях или мне в телеграм.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может понравиться