curl_copy_handle în PHP

Creează o copie a unei cereri cURL, cu toate opțiunile ei, pe care o poți modifica separat.

Sintaxă
curl_copy_handle(CurlHandle $handle): CurlHandle|false

Ce face curl_copy_handle

curl_copy_handle este utilă când ai o „cerere șablon” (antete, timp limită, agent) și vrei mai multe cereri care diferă doar prin URL sau corp. Copia este independentă: modificările ei nu afectează originalul.

Parametri

Parametru Descriere
$handle Cererea copiată.

Ce returnează

O cerere nouă, sau false la eroare.

Exemple

Exemplul 1: Șablon de cerere copiat

<?php
$sablon = curl_init("https://www.dexblog.ro/");
curl_setopt_array($sablon, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 10]);

$copie = curl_copy_handle($sablon);
curl_setopt($copie, CURLOPT_URL, "https://www.dexblog.ro/invata/");

echo curl_getinfo($sablon, CURLINFO_EFFECTIVE_URL) . "\n";
echo curl_getinfo($copie, CURLINFO_EFFECTIVE_URL);

Rezultat

https://www.dexblog.ro/
https://www.dexblog.ro/invata/

Greșeli frecvente

  • Copiezi cu $copie = $sablon. Ambele variabile indică aceeași cerere; schimbarea URL-ului o afectează și pe cealaltă.

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_reset: Readuce toate opțiunile unei cereri cURL la valorile implicite, păstrând conexiunea deschisă pentru refolosire.