connection_aborted în PHP

Verifică dacă vizitatorul a închis pagina sau a apăsat Stop înainte ca scriptul să termine.

Sintaxă
connection_aborted(): int

Ce face connection_aborted

connection_aborted returnează 1 dacă vizitatorul s-a deconectat și 0 altfel. Implicit, PHP oprește scriptul când observă deconectarea. Dacă ai pornit ignore_user_abort(true), scriptul continuă și poți verifica cu această funcție dacă mai are rost să trimiți date.

Ce returnează

1 dacă conexiunea a fost întreruptă, altfel 0.

Exemple

Exemplul 1: Oprire curată a unui flux de date

<?php
ignore_user_abort(true);

foreach (range(1, 100) as $pas) {
    echo "data: pasul $pas\n\n";
    flush();
    if (connection_aborted()) {
        error_log("Vizitatorul a plecat la pasul $pas");
        break;
    }
    sleep(1);
}

Rezultat în browser

data: pasul 1

data: pasul 2

...

Greșeli frecvente

  • Verifici deconectarea fără să trimiți nimic. PHP află că vizitatorul a plecat doar la o scriere, deci apelează întâi echo și flush().

Comenzi înrudite

  • connection_status: Returnează starea conexiunii cu vizitatorul: normală, întreruptă sau expirată.
  • ignore_user_abort: Stabilește dacă scriptul continuă să ruleze după ce vizitatorul închide pagina.
  • flush: Trimite imediat spre browser tot ce a fost afișat până acum.