Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann die PHP-Ausführung nach dem Senden einer HTTP-Antwort aufrechterhalten werden?

Wie kann die PHP-Ausführung nach dem Senden einer HTTP-Antwort aufrechterhalten werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-26 08:33:09930Durchsuche

How to Maintain PHP Execution After Sending an HTTP Response?

Aufrechterhaltung der PHP-Ausführung nach der HTTP-Antwort

Die Aufrechterhaltung der PHP-Ausführung über die HTTP-Antwort hinaus erfordert besondere Überlegungen, insbesondere in Umgebungen wie mod_php. Um dieser Herausforderung zu begegnen, wird die folgende Lösung vorgestellt:

Um eine HTTP-Antwort zu senden, während die PHP-Ausführung fortgesetzt wird, können Sie das folgende Code-Snippet nutzen:

<?php
ob_end_clean();
header("Connection: close");
ignore_user_abort(); // Optional
ob_start();
echo('Text the user will see');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Enable strange behavior
flush();            // Required for behavior to work
session_write_close(); // Suggested enhancement to ensure session data is saved
// Perform processing here
sleep(30);
echo('Text user will never see');
?>

Dieser Code führt die folgenden Schritte aus :

  1. Reinigt den Ausgabepuffer.
  2. Setzt den Header „Connection: close“, um das HTTP zu beenden Verbindung.
  3. Ignoriert alle Benutzerversuche, das Skript abzubrechen (optional).
  4. Startet einen neuen Ausgabepuffer, um die verbleibende Ausgabe zu erfassen.
  5. Gibt eine Nachricht an den Benutzer aus ( welche sofort angezeigt wird).
  6. Berechnet die Länge des Ausgabepuffers und legt die „Content-Length“ fest Header.
  7. Leert den Ausgabepuffer, um die Antwortheader und die Nachricht an den Client zu senden.
  8. Schließt die Sitzung, um sicherzustellen, dass alle vorgenommenen Änderungen gespeichert werden.
  9. Führt alle erforderlichen Verarbeitungen aus , was bis zu einer Minute dauern kann.
  10. Gibt alle zusätzlichen Nachrichten oder Ergebnisse aus (diese werden nicht an die gesendet). Kunde).

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