Guia de Conversão de cURL para PHP

Carregar Exemplo:
POST → api.example.com
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.example.com/v1/orders',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer sec_tok_99887766'
    ],
    CURLOPT_POSTFIELDS => json_encode({
    "order_id": "ORD-5021",
    "amount": 149.99,
    "currency": "USD",
    "items": [
        {
            "sku": "A10",
            "qty": 2
        }
    ]
})
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #: " . $err;
} else {
    echo $response;
}
Método HTTPPOST
Host de Destinoapi.example.com
Total de Cabeçalhos2 Headers
Tamanho do Payload98 bytes

100% Client-Side Privacy

Your API keys, Bearer tokens, passwords, and sensitive production URLs are parsed exclusively inside your local browser memory.

Multi-Client Engine Support

Transpile command lines into Native ext-curl, GuzzleHttp 7+, Laravel 9/10/11 Http Client, or WordPress remote API syntax.

Full Option Parity

Handles HTTP Basic Auth (-u), custom headers (-H), JSON payloads (-d), timeouts, redirect following (-L), and insecure SSL (-k).

Referência técnica e guia de arquitetura

Guia de Conversão de cURL para PHP — Guia de referência

Manual prático para transformar requisições cURL em código PHP confiável com curl_init nativo, Guzzle, Laravel Http e WordPress.

Parâmetros principais e controles

CURLOPT_URLstring

URL de destino completa com parâmetros de consulta.

CURLOPT_RETURNTRANSFERbool (true)

Retorna a resposta como string em vez de imprimir diretamente na tela.

CURLOPT_POSTFIELDSstring | array

Dados do corpo enviados na requisição POST/PUT.

Dicas profissionais e melhores práticas

Sempre configure CURLOPT_TIMEOUT para impedir travamento de processos do PHP-FPM.

Adote o cliente HTTP do Laravel ou Guzzle para código limpo e fácil de testar.

Nunca desative a verificação de certificados SSL em produção.

Problemas comuns e solução de problemas

Baixe o arquivo cacert.pem e defina curl.cainfo no seu php.ini.

Confirme se o cabeçalho 'Content-Type: application/json' foi declarado corretamente.

Perguntas frequentes (FAQ)

Meus tokens ou URLs saem do navegador?▼

Não. Todo o processamento é feito localmente no seu computador.

Quais bibliotecas PHP estão disponíveis?▼

cURL nativo, GuzzleHttp, facade Http do Laravel e wp_remote_post do WordPress.

O código gerado roda em PHP 8.3?▼

Sim, é 100% compatível com versões atuais do PHP.

Suporta upload de arquivos e formulários multipart?▼

Sim, converte uploads para CURLFile ou arrays multipart.

Ferramentas e utilitários relacionados

Todas as ferramentas →