Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die PHP-Verarbeitung nach dem Senden einer Antwort fortsetzen?

Wie kann ich die PHP-Verarbeitung nach dem Senden einer Antwort fortsetzen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-18 17:24:10852Durchsuche

How Can I Continue PHP Processing After Sending a Response?

Fortsetzung der PHP-Verarbeitung nach dem Senden einer Antwort

Ihr PHP-Skript empfängt Daten von einem Server, verarbeitet sie und generiert eine Antwort. Sie stehen jedoch vor einem Problem, bei dem die Antwort sofort an den Server gesendet werden muss, anschließend aber noch eine zusätzliche Verarbeitung erfolgen muss.

Lösung mit Ausgabepufferung und FastCGI

Damit PHP die Verarbeitung nach dem Senden einer Antwort fortsetzen kann, können Sie die folgende Lösung verwenden:

  1. Ignorieren des Benutzerabbruchs aktivieren: ignore_user_abort(true); (optional)
  2. Legen Sie ein unbegrenztes Zeitlimit fest: set_time_limit(0);
  3. Verwenden Sie die Ausgabepufferung, um die Antwort vorzeitig zu senden: ob_start();
  4. Senden Sie die Antwort und legen Sie fest passende Header: echo $response; gefolgt von header('Connection: close'); und header('Content-Length: '.ob_get_length());;
  5. Ausgabepuffer leeren: ob_end_flush(); @ob_flush(); flush();
  6. Für PHP-Versionen größer als 5.3.3, die auf PHP-FPM ausgeführt werden, beenden Sie die Anfrage: fastcgi_finish_request();
  7. Fahren Sie mit Ihrer weiteren Verarbeitung fort.
  8. Beenden Sie das Skript: die(); (besonders wichtig, wenn set_time_limit(0) verwendet wird)

Dieser Ansatz gibt die Verbindung zum Webserver frei, während PHP gleichzeitig die Ausführung fortsetzen und die gewünschte Post-Response-Verarbeitung durchführen kann.

Das obige ist der detaillierte Inhalt vonWie kann ich die PHP-Verarbeitung nach dem Senden einer Antwort fortsetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn