A maior vantagem da bi­bli­o­teca cURL PHP é sua ca­pa­ci­dade de atender a diversos re­qui­si­tos de trans­fe­rên­cia de dados e, ao mesmo tempo, pos­si­bi­li­tar a in­te­gra­ção completa com APIs. Conheça a sintaxe e aprenda a fazer uso de cURL PHP com exemplos práticos.

O que é cURL PHP?

cURL (Client URL Request Library) é uma extensão para a linguagem de pro­gra­ma­ção PHP. Ela dis­po­ni­bi­liza uma interface que pos­si­bi­lita o envio de so­li­ci­ta­ções HTTP e co­mu­ni­ca­ções por diversos pro­to­co­los de rede (como HTTP, HTTPS e FTP). Por meio do cURL, você pode adicionar ou alterar ca­be­ça­lhos (headers), pa­râ­me­tros e dados, para cumprir re­qui­si­tos de APIs.

Como instalar cURL PHP?

Se você deseja fazer uso do cURL PHP, pro­va­vel­mente não precisará se preocupar com o processo de ins­ta­la­ção, já que essa é uma extensão in­cor­po­rada. Por outro lado, você deverá verificar se a extensão está ativa na sua ins­ta­la­ção PHP. Para checar a ativação do cURL, crie um arquivo PHP e, dentro dele, execute o seguinte código:

phpinfo();
php

Na página que lhe será apre­sen­tada, busque pela in­for­ma­ção cURL support ou se­me­lhante. Ela mostrará se o cURL está ativo. Caso não esteja, você precisará editar o arquivo php.ini. Nele, localize a expressão ;extension=php_curl.dll se estiver tra­ba­lhando com cURL no Windows ou ;extension=curl se planeja usar o cURL no Linux. Para habilitar um cURL de­sa­ti­vado, exclua o ponto e vírgula (;) do início da linha — basta fazer isso para que a extensão cURL passe a funcionar. Em seguida, salve o arquivo e reinicie o servidor web para que as al­te­ra­ções possam ser aplicadas.

Dica

No tutorial PHP para ini­ci­an­tes do nosso Digital Guide, você aprende os prin­cí­pios básicos da pro­gra­ma­ção em PHP, fun­da­men­tais para a uti­li­za­ção do cURL. Se você quer conhecer as vantagens e des­van­ta­gens da linguagem de pro­gra­ma­ção PHP com relação a outras, acesse nossos artigos com­pa­ra­ti­vos PHP vs. Python e PHP vs. Ja­vaS­cript.

cURL PHP: Sintaxe e uso

A estrutura de comandos cURL PHP é formada por funções e opções que tem os objetivos de con­fi­gu­rar uma sessão cURL, executar so­li­ci­ta­ções e trabalhar os re­sul­ta­dos.

Passo 1: Iniciar uma sessão cURL

$curl = curl_init();
php

Passo 2: Definir as opções

curl_setopt($curl, CURLOPT_URL, 'https://exemplo.com/api'); // define o URL
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // define o resultado da solicitação como valor de retorno
php

Passo 3: Executar a so­li­ci­ta­ção cURL

$response = curl_exec($curl);
php

Passo 4: Encerrar a sessão cURL

curl_close($curl);
php
Dica

A solução Deploy Now da IONOS acelera o seu trabalho de de­sen­vol­vi­mento, mi­ni­mi­zando períodos de ina­ti­vi­dade. Aplique es­tra­té­gias flexíveis de im­plan­ta­ção de projetos on-line com os recursos ofe­re­ci­dos pelo Deploy Now.

cURL PHP: Funções

Diversas funções PHP permitem criar so­li­ci­ta­ções HTTP ou fazer uploads de arquivos. Ainda, também é possível recuperar in­for­ma­ções de um banco de dados MySQL com PHP, e enviá-las, por cURL, em formato JSON.

Estas são algumas das funções mais im­por­tan­tes do cURL PHP:

  • curl_init: Inicia uma nova sessão cURL e retorna um iden­ti­fi­ca­dor cURL.
  • curl_setopt: Configura opções para a sessão cURL. Aqui, você deve definir pa­râ­me­tros como URLs, ca­be­ça­lhos ou métodos de au­ten­ti­ca­ção. Com o cURL PHP, também é possível es­pe­ci­fi­car dados POST a serem enviados ao servidor.
  • curl_exec: Executa a sessão cURL e retorna a resposta como string.
  • curl_close: Encerra a sessão cURL e libera os recursos.
  • curl_setopt_array: Define uma série de opções do cURL em um único comando.
  • curl_getinfo: Retorna in­for­ma­ções sobre a sessão cURL mais recente, como o URL ou o código de status HTTP.
  • curl_error: Retorna a mensagem de erro da última so­li­ci­ta­ção cURL.
  • curl_errno: Retorna o código de erro da última so­li­ci­ta­ção cURL.
  • curl_multi_init: Inicia um cURL multi-handle, que permite executar várias so­li­ci­ta­ções cURL si­mul­ta­ne­a­mente.
  • curl_multi_add_handle: Adiciona uma sessão cURL a um cURL multi-handle.
  • curl_multi_exec: Executa múltiplas so­li­ci­ta­ções cURL.
  • curl_multi_get­con­tent: Retorna o conteúdo es­pe­cí­fico da resposta de uma sessão cURL no cURL multi-handle.
API IONOS grátis
Atu­a­li­za­ção de domínio, DNS, SSL, con­fi­gu­ra­ções e mais com a API da IONOS.
  • Ge­ren­ci­a­mento DNS
  • Admin SSL fácil
  • Do­cu­men­ta­ção API

cURL PHP: Exemplo de uso

Ao criar suas próprias classes PHP, você torna o seu código mais modular, além de definir métodos reu­ti­li­zá­veis e sim­pli­fi­car a im­ple­men­ta­ção do cURL nas apli­ca­ções.

O exemplo abaixo ilustra o uso de uma classe PHP em com­bi­na­ção com uma so­li­ci­ta­ção GET cURL PHP:

class MyCurlClient {
    private $curl;
    public function __construct() {
        $this->curl = curl_init();
        // Aqui você pode fazer outras configurações
    }
    public function sendRequest($url) {
        curl_setopt($this->curl, CURLOPT_URL, $url);
        curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true);
        
        $response = curl_exec($this->curl);
        return $response;
    }
    public function close() {
        curl_close($this->curl);
    }
}
// Utilização da própria classe
$myCurl = new MyCurlClient();
$response = $myCurl->sendRequest('https://exemplo.com/api');
echo $response;
$data = json_decode($response, true);
// Exibição de dados com operadores PHP
echo "Post ID: " . $data['id'] . "<br>";
echo "Title: " . $data['title'] . "<br>";
echo "Body: " . $data['body'] . "<br>";
$myCurl->close();
php

Neste cURL PHP de exemplo, criamos a classe MyCurlClient para processar uma sessão cURL PHP no cons­tru­tor. O método sendRequest() recebe um URL, configura as opções do cURL e executa a so­li­ci­ta­ção HTTP GET. As strings exibidas são se­quen­ci­a­das com ope­ra­do­res PHP. Por fim, a função close() encerra a sessão cURL.

IONOS Cloud Object Storage
Cloud storage at an un­be­a­ta­ble price
  • Perfect for backups and archiving.
  • Redundant and secure data storage across multiple regions.
  • Un­be­a­ta­ble price-per­for­mance ratio at $4.99/TB.
Ir para o menu principal