Home > Uncategorized > Используем CURL

Используем CURL

Библиотека CURL (Client URLs) была разработана Даниелом Стенбергом (Daniel Stenberg) в 1998 году как утилита, работающая из командной строки.

Библиотека, позволяет передавать файлы на удаленный компьютер, используя множество Интернет протоколов. Она имеет очень гибкую настройку и позволяют выполнить практически любой удаленный запрос.

CURL поддерживает протоколы HTTP, HTTPS, FTP, FTPS, DICT, TELNET, LDAP, FILE, и GOPHER, так же как HTTP-post, HTTP-put, cookies, FTP-закачкe, продолжение прерванной передачи файлов, пароли, номера портов, сертификаты SSL, Kerberos и прокси.

Используя CURL, web-сервер может выступать полноценным клиентом любого основанного на HTTP протоколе сервисе, к примеру: XML-RPC, SOAP, или WebDAV.

В общем виде использование библиотеки сводиться к четырем шагам:

  • Создание ресурса CURL c помощью функции curl_init
  • Установка параметров c помощью функции curl_setopt
  • Выполнение запроса c помощью функции curl_exec
  • Освобождение ресурса CURL c помощью функции curl_close

Простой пример использования CURL:

<?php
  //Иницализация библиотеки curl.
  if ($ch = @curl_init()) 
  {
     //Устанавливаем URL запроса
     @curl_setopt($ch, CURLOPT_URL, 'http://blog.yousoft.ru/');
     //При значении true CURL включает в вывод заголовки.
     @curl_setopt($ch, CURLOPT_HEADER, false);
     //Куда помещать результат выполнения запроса: 
     //  false - в стандартный поток вывода, 
     //  true - в виде возвращаемого значения функции curl_exec.
     @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     //Максимальное время ожидания в секундах
     @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
     //Установим значение поля User-agent
     @curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://blog.yousoft.ru)');
     //Выполнение запроса
     $data = @curl_exec($ch);
     //Вывести полученные данные
     echo $data;
     //Особождение ресурса
     @curl_close($ch);
  }
?>

Пример использования GET запроса:

<?php
  $ch = curl_init();
   //GET запрос указывается в строке URL
  curl_setopt($ch, CURLOPT_URL, 'http://blog.yousoft.ru/?s=CURL');
  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://blog.yousoft.ru)');
  $data = curl_exec($ch);
  curl_close($ch);
?>

Посылка GET запроса ничем не отличается от получения страницы. Важно заметить, что строка запроса формируется следующим образом: http://blog.yousoft.ru/index.php?name1=value1&name2=value2&name3=value3. Где http://blog.yousoft.ru/index.php – адрес страницы, nameX – название переменной, valueX – значение переменной.

Пример использования POST запроса:

<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'http://blog.yousoft.ru/index.php');
  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  //Нужно явно указать, что будет POST запрос
  curl_setopt($ch, CURLOPT_POST, true);
  //Здесь передаются значения переменных
  curl_setopt($ch, CURLOPT_POSTFIELDS, 's=CURL');
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://blog.yousoft.ru)');
  $data = curl_exec($ch);
  curl_close($ch);
?>

Отправка POST запроса не многим отличается от отправки GET запроса. Все основные шаги остаются такие же. Переменные также задаются парами: name1=value1&name2=value2.

Оригинал статьи:

Tags:
  1. No comments yet.
  1. No trackbacks yet.