Ce face curl_setopt_array
În loc de zece apeluri curl_setopt, pui toate opțiunile într-un tablou cu chei CURLOPT_* și le setezi cu un singur apel. Opțiunile sunt aplicate în ordine; dacă una eșuează, funcția se oprește și returnează false.
Opțiuni des folosite: CURLOPT_RETURNTRANSFER (returnează răspunsul), CURLOPT_FOLLOWLOCATION (urmează redirecționările), CURLOPT_TIMEOUT (limită în secunde), CURLOPT_HTTPHEADER (antete), CURLOPT_USERAGENT, CURLOPT_POST și CURLOPT_POSTFIELDS, CURLOPT_CUSTOMREQUEST (pentru PUT, DELETE).
Parametri
| Parametru | Descriere |
|---|---|
$handle |
Cererea creată cu curl_init. |
$options |
Tabloul de opțiuni, de forma [CURLOPT_... => valoare]. |
Ce returnează
true dacă toate opțiunile au fost setate, altfel false.
Exemple
Exemplul 1: O funcție reutilizabilă pentru API-uri JSON
<?php
function apiGet(string $url): array
{
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => ["Accept: application/json"],
CURLOPT_USERAGENT => "dexblog-exemplu/1.0",
]);
$raspuns = curl_exec($ch);
return $raspuns === false ? [] : json_decode($raspuns, true);
}
$articole = apiGet("https://www.dexblog.ro/wp-json/wp/v2/posts?per_page=1&_fields=id,title");
echo $articole[0]["title"]["rendered"];
Rezultat real (necesită conexiune la internet)
Cum afectează inteligența artificială schimbările climatice în 2026: Ghid complet
Exemplul 2: Trimiterea unui formular (POST clasic)
<?php
$ch = curl_init("https://httpbin.org/post");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(["nume" => "Ana", "mesaj" => "Bună ziua!"]),
CURLOPT_TIMEOUT => 10,
]);
$raspuns = json_decode(curl_exec($ch), true);
print_r($raspuns["form"]);
Rezultat real (necesită conexiune la internet)
Array
(
[mesaj] => Bună ziua!
[nume] => Ana
)
Greșeli frecvente
- Folosești chei text în tablou, de exemplu
"CURLOPT_TIMEOUT" => 10. Cheile trebuie să fie constantele, fără ghilimele. - Dai un tablou direct în
CURLOPT_POSTFIELDSși serverul nu primește datele cum se aștepta. Un tablou este trimis camultipart/form-data. Pentru un formular clasic (application/x-www-form-urlencoded) foloseștehttp_build_query($date), iar pentru JSONjson_encode($date)plus antetulContent-Type.
Comenzi înrudite
curl_init / curl_setopt / curl_exec: Pregătește o cerere HTTP către alt server, de exemplu un API. Împreună cu curl_setopt și curl_exec, trimite cererea și primește răspunsul.curl_error / curl_errno: Returnează mesajul ultimei erori cURL (domeniu inexistent, timp expirat, problemă SSL). curl_errno dă codul numeric.http_build_query: Transformă un tablou în textul de interogare al unui URL (a=1&b=2), cu toate valorile codate corect.