Ce face curl_upkeep
Când păstrezi o conexiune deschisă între cereri (de exemplu HTTP/2 către un API), serverul o poate închide dacă nu primește nimic un timp. curl_upkeep trimite un mesaj de menținere (la HTTP/2, un cadru PING) fără să facă o cerere nouă.
Are nevoie de libcurl 7.62 sau mai nou și este folosită mai ales în scripturi care rulează mult timp (workeri, cozi de mesaje).
Parametri
| Parametru | Descriere |
|---|---|
$handle |
Cererea a cărei conexiune trebuie menținută. |
Ce returnează
true la succes, false la eroare.
Exemple
Exemplul 1: Conexiune menținută între cereri
<?php
$ch = curl_init("https://www.dexblog.ro/invata/php/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
// ... așteptare între cereri
var_dump(curl_upkeep($ch));
Rezultat real (necesită conexiune la internet)
bool(true)
Greșeli frecvente
- Te aștepți ca
curl_upkeepsă redeschidă o conexiune închisă. Doar o menține pe cea existentă; o conexiune pierdută se refăce la următorulcurl_exec.
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_share_init_persistent: Creează un obiect de partajare cURL care rămâne activ între cererile HTTP diferite servite de același proces PHP.