Ce face curl_share_init
Implicit, fiecare cerere cURL are propriile cookie-uri și propriul cache DNS. Cu un obiect de partajare, cererile care îl folosesc (CURLOPT_SHARE) împart aceste date: de exemplu, autentificarea făcută de o cerere este văzută și de celelalte.
Ce se partajează alegi cu curl_share_setopt. Partajarea durează doar cât rulează scriptul; pentru partajare între cereri HTTP diferite există curl_share_init_persistent.
Ce returnează
Un obiect CurlShareHandle.
Exemple
Exemplul 1: Cookie-uri comune pentru două cereri
<?php
$share = curl_share_init();
curl_share_setopt($share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
curl_share_setopt($share, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
$login = curl_init("https://httpbin.org/cookies/set?sesiune=abc123");
curl_setopt_array($login, [CURLOPT_SHARE => $share, CURLOPT_COOKIEFILE => "", CURLOPT_RETURNTRANSFER => true]);
curl_exec($login);
$cont = curl_init("https://httpbin.org/cookies");
curl_setopt_array($cont, [CURLOPT_SHARE => $share, CURLOPT_COOKIEFILE => "", CURLOPT_RETURNTRANSFER => true]);
echo curl_exec($cont);
Rezultat real (necesită conexiune la internet)
{
"cookies": {
"sesiune": "abc123"
}
}
Greșeli frecvente
- Partajezi cookie-urile fără
CURLOPT_COOKIEFILE. Motorul de cookie-uri al libcurl nu este pornit, iar cererile nu trimit cookie-urile. SeteazăCURLOPT_COOKIEFILE => "".
Comenzi înrudite
curl_share_setopt: Alege ce date sunt partajate între cererile cURL care folosesc un obiect de partajare.curl_share_init_persistent: Creează un obiect de partajare cURL care rămâne activ între cererile HTTP diferite servite de același proces PHP.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.