Используем 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.
Оригинал статьи:
