Ce face connection_status
connection_status returnează un număr care se compară cu constantele CONNECTION_NORMAL (0), CONNECTION_ABORTED (1, vizitatorul a închis pagina) și CONNECTION_TIMEOUT (2, s-a depășit timpul maxim). Valorile se pot combina.
PHP observă că vizitatorul a plecat doar când încearcă să îi trimită ceva. De aceea verificarea are sens după echo și flush, în scripturi lungi.
Ce returnează
Starea conexiunii, ca număr.
Exemple
Exemplul 1: Starea în linia de comandă
<?php
var_dump(connection_status() === CONNECTION_NORMAL);
Rezultat
bool(true)
Exemplul 2: Funcție de final care știe de ce s-a oprit scriptul
<?php
register_shutdown_function(function () {
if (connection_status() & CONNECTION_TIMEOUT) {
error_log("Exportul a depășit timpul maxim");
} elseif (connection_status() & CONNECTION_ABORTED) {
error_log("Vizitatorul a închis pagina");
}
});
Greșeli frecvente
- Compari cu
==o singură valoare. Stările se pot combina, deci verifică un bit anume cu&.
Comenzi înrudite
connection_aborted: Verifică dacă vizitatorul a închis pagina sau a apăsat Stop înainte ca scriptul să termine.ignore_user_abort: Stabilește dacă scriptul continuă să ruleze după ce vizitatorul închide pagina.set_time_limit: Stabilește câte secunde poate rula scriptul înainte să fie oprit.