Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich die PHP-Ausführung nach dem Senden einer HTTP-Antwort am Laufen halten?

Wie kann ich die PHP-Ausführung nach dem Senden einer HTTP-Antwort am Laufen halten?

Barbara Streisand
Barbara StreisandOriginal
2024-11-12 13:10:02594Durchsuche

How Can I Keep PHP Execution Running After Sending an HTTP Response?

Fortsetzung der PHP-Ausführung nach HTTP-Antwort mit mod_php

Um das Problem zu überwinden, dass die PHP-Ausführung von einer aufrufenden Anwendung aufgrund einer Zeitüberschreitung zuvor beendet wird Das Skript kann wesentliche Vorgänge ausführen, man kann bestimmte Techniken innerhalb des PHP-Skripts selbst nutzen.

Die Response-Abort-Resume-Methode

Der bereitgestellte Codeausschnitt nutzt Folgendes Ansatz:

  1. Leeren Sie den Ausgabepuffer und setzen Sie den Header „Connection: close“, um die HTTP-Antwort zu beenden.
  2. Aktivieren Sie „ignore_user_abort“, um zu verhindern, dass die PHP-Ausführung vom Client unterbrochen wird .
  3. Neuen Ausgabepuffer starten.
  4. Gewünschte Nachricht an den Browser senden.
  5. Ermitteln Sie die Größe des Ausgabepuffers und fügen Sie einen „Content-Length“-Header hinzu Informieren Sie den Browser über die Antwortgröße.
  6. Leeren Sie beide Ausgabepuffer, um die Antwort an den Client zu senden.
  7. Schließen Sie die Sitzung, um von PHP gehaltene Ressourcen freizugeben.
  8. Führen Sie weitere Schritte aus Verarbeitung und Operationen innerhalb des geänderten Skripts.

Implementierungsdetails

Es ist wichtig zu beachten, dass „ob_end_flush()“ und „flush()“ beide Funktionen haben müssen nacheinander aufgerufen werden, damit die Antwort an den Client übermittelt werden kann. Darüber hinaus haben einige Benutzer verbesserte Ergebnisse gemeldet, indem sie „session_write_close()“ hinzugefügt haben, um die Sitzungsverwaltungsressourcen von PHP zu schließen.

Durch die Implementierung dieser Methode können PHP-Skripte schnell eine HTTP-Antwort an eine wartende Anwendung senden und mit der Ausführung wichtiger Vorgänge fortfahren ohne Probleme mit der vorzeitigen Kündigung zu haben.

Das obige ist der detaillierte Inhalt vonWie kann ich die PHP-Ausführung nach dem Senden einer HTTP-Antwort am Laufen halten?. 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