Примеры использования cURL в PHP
cURL PHP – это библиотека функций PHP предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS
. Библиотека используется для получения данных в виде XML
, JSON
и непосредственно в HTML
, парсинга, загрузки и передачи файлов и т.д. Посылать HTTP запросы можно методами GET, POST, PUT, DELETE
.
Официальная документация.
GET запрос
Простой GET запрос:
$ch = curl_init('https://example.com/v1/users'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); $errorCode = curl_errno($ch); $errorText = curl_error($ch); $info = curl_getinfo($ch); curl_close($ch); print_r(json_decode($response, true));
GET-запрос с параметрами
Получим пользователя по его ID:
$url = 'https://example.com'; $version = 'v1'; $resource = 'users'; $params = [ 'id' => 2200, ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, sprintf( "%s/%s/%s?%s", $url, $version, $resource, http_build_query($params) )); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); curl_close($ch); print_r(json_decode($response, true));
POST запрос
Добавление пользователя:
$url = 'https://example.com'; $version = 'v1'; $resource = 'users'; $token = '876ef885733d24f5bc449f1611d2d1739a6ef56ca8a760f4bfa3610374101e58'; $params = [ 'email' => 'test@mail.com', 'name' => 'John Smith', 'gender' => 'male', 'status' => 'active', ]; $headers = [ 'Content-Type: application/json', 'Authorization: Bearer ' . $token ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, sprintf( "%s/%s/%s", $url, $version, $resource )); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $response = curl_exec($ch); curl_close($ch); print_r(json_decode($response, true));
PUT запрос
Изменение пользователя по его ID:
$url = 'https://example.com'; $version = 'v1'; $resource = 'users/2200'; $token = '876ef885733d24f5bc449f1611d2d1739a6ef56ca8a760f4bfa3610374101e58'; $params = [ 'email' => 'test_update@mail.com' ]; $headers = [ 'Content-Type: application/json', 'Authorization: Bearer ' . $token ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, sprintf( "%s/%s/%s?%s", $url, $version, $resource, http_build_query($params) )); curl_setopt($ch, CURLOPT_PUT, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); print_r(json_decode($response, true));
DELETE запрос
Удаление пользователя по его ID:
$url = 'https://example.com'; $version = 'v1'; $resource = 'users/2200'; $token = '876ef885733d24f5bc449f1611d2d1739a6ef56ca8a760f4bfa3610374101e58'; $headers = [ 'Content-Type: application/json', 'Authorization: Bearer ' . $token ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, sprintf( "%s/%s/%s", $url, $version, $resource )); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); print_r(json_decode($response, true));
Basic авторизация
$url = 'https://example.com/auth.php'; $login = 'admin'; $password = 'password'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "$login:$password"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_HEADER, false); $response = curl_exec($ch); curl_close($ch); print_r(json_decode($response, true));
Bearer авторизация
$url = 'https://example.com'; $version = 'v1'; $resource = 'users'; $headers = [ 'Content-Type: application/json', 'Authorization: Bearer YOUR-TOKEN' ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, sprintf( "%s/%s/%s", $url, $version, $resource )); curl_setopt($ch, CURLOPT_TIMEOUT, 0); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BEARER); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); print_r(json_decode($response, true));
OAuth авторизация
$headers = [ 'Content-Type: application/json', 'Authorization: OAuth YOUR-TOKEN' ];
Дополнительная информация о сеансе
$ch = curl_init('https://example.com'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_exec($ch); $errorCode = curl_errno($ch); // код последней ошибки $errorText = curl_error($ch); // описание последней ошибки $info = curl_getinfo($ch); // дополнительная информация о сеансе $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // код ответа сервера curl_close($ch); print_r($info); print_r($http_code);