Ce face curl_pause
curl_pause se apelează din funcțiile callback ale unei cereri active (de exemplu CURLOPT_XFERINFOFUNCTION sau CURLOPT_WRITEFUNCTION). Flag-uri: CURLPAUSE_RECV (oprește primirea), CURLPAUSE_SEND (oprește trimiterea), CURLPAUSE_ALL (ambele) și CURLPAUSE_CONT (reia).
Este o funcție pentru cazuri speciale, de exemplu limitarea vitezei sau așteptarea până când aplicația poate procesa datele.
Parametri
| Parametru | Descriere |
|---|---|
$handle |
Cererea activă. |
$flags |
CURLPAUSE_RECV, CURLPAUSE_SEND, CURLPAUSE_ALL sau CURLPAUSE_CONT. |
Ce returnează
Un cod de eroare cURL: 0 (CURLE_OK) la succes.
Exemple
Exemplul 1: Pauză de o secundă în timpul descărcării
<?php
$ch = curl_init("https://www.dexblog.ro/invata/php/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
$pauzat = false;
curl_setopt($ch, CURLOPT_XFERINFOFUNCTION, function ($ch, $total, $descarcat) use (&$pauzat) {
if (!$pauzat && $descarcat > 100000) {
$pauzat = true;
echo "Pauză la $descarcat octeți: cod " . curl_pause($ch, CURLPAUSE_RECV) . "\n";
sleep(1);
echo "Reluare: cod " . curl_pause($ch, CURLPAUSE_CONT) . "\n";
}
return 0;
});
echo "Total: " . strlen(curl_exec($ch)) . " octeți";
Rezultat real (necesită conexiune la internet)
Pauză la 114269 octeți: cod 0
Reluare: cod 0
Total: 581760 octeți
Greșeli frecvente
- Apelezi
curl_pausepe o cerere care nu rulează. Returnează un cod de eroare (43, argument invalid) și nu face nimic.
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_setopt_array: Setează mai multe opțiuni cURL dintr-o dată, dintr-un tablou. Codul devine mai scurt și mai ușor de citit.