7 Stimmen

Erkennen von geschlossenen Browserverbindungen in PHP

Weiß jemand, ob es möglich ist, zu erkennen, ob der Browser die Verbindung während der Ausführung eines langen Programms geschlossen hat? PHP Skript, bei Verwendung von apache y mod_php ?

Zum Beispiel, in Java die HttpOutputStream wirft eine exception wenn man versucht, in sie zu schreiben, nachdem der Browser sie geschlossen hat - oder reagiert negativ auf checkError() .

7voto

Verwenden Sie Verbindung_abgebrochen()

0 Stimmen

Unter Fedora22, PHP 5.6.12 und ignore_user_abort(false) funktioniert es auch bei der Ausgabe von Daten nicht.

2voto

Willem Punkte 918

Zumindest in PHP4 funktionierten connection_aborted und connection_status nur, nachdem das Skript eine Ausgabe an den Browser gesendet hatte (mit flush() | ob_flush()). Erwarten Sie auch keine genau getimten Ergebnisse.

Es ist vor allem nützlich, um zu überprüfen, ob auf der anderen Seite noch jemand wartet.

0 Stimmen

It's mostly useful to check if there is still someone waiting on the other side. Wie?

0 Stimmen

Wie: "echo" etwas oder Ausgabe einer Kopfzeile(), rufen Sie 'flush()' und verwenden Sie dann können Sie connection_aborted(), um festzustellen, ob die HTTP-Client ist immer noch "hören" oder vielleicht Zeit abgelaufen.

1voto

Kent Fredric Punkte 55042

http://nz.php.net/register-shutdown-function

Wahrscheinlich weniger kompliziert, wenn Sie nur ein Skript zu sterben und behandeln es, wenn ein Benutzer beendet wird.

( D.h.: wenn es sich um eine langwierige Suche handelt, würde dies eine Reihe von Arbeitszyklen sparen )

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X