PHP curl примеры POST и GET запросов

Автор: Igor Kirsanov

С помощью curl возможно делать сложные запросы, но синтаксис так же, относительно сложен. Поэтому часто используют готовые функции и заготовки.

CURL_IPRESOLVE_V4 - отвечает за то, чтобы отправка данных происходила через IPv4 протолок. Для IPv6 строку нужно изменить на CURL_IPRESOLVE_V6

Если не прописать CURLOPT_RETURNTRANSFER, true, то к ответу может добавляться 1, при успешном запросе, обычно нужны чистые данные, без доп информации.

Пример get запроса с помощью curl


    function getResponse ($url)
    {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        curl_setopt($ch, CURLOPT_GET, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);

        if (!isset($response))
            return null;
        return $response;
    }
    
    echo getResponse ($url);

На вход передается url адрес, переменные подставляются в строку. Ответ сервера возвращается функцией

Пример post запроса с помощью curl


    function postResponse ($url, $data)
    {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);

        if (!isset($response))
            return null;
        return $response;
    }
    
    echo postResponse ($url, $data);

Кроме url адреса, при post запросе возможно потребуется перадать данные, это может быть как строка параметров, так и xml и json.