curl_upkeep în PHP

cURL și email PHP 8.2+

Trimite mesaje de menținere pe conexiunile deschise ale unei cereri cURL, ca serverul să nu le închidă.

Sintaxă
curl_upkeep(CurlHandle $handle): bool

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_upkeep să redeschidă o conexiune închisă. Doar o menține pe cea existentă; o conexiune pierdută se refăce la următorul curl_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.