Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich PHP-Code ausführen, nachdem ich eine HTTP-Antwort gesendet habe?

Wie kann ich PHP-Code ausführen, nachdem ich eine HTTP-Antwort gesendet habe?

Susan Sarandon
Freigeben: 2024-12-30 22:19:11
Original
712 Leute haben es durchsucht

How Can I Execute PHP Code After Sending an HTTP Response?

PHP nach Antwortversand ausführen

Ein PHP-Skript stößt häufig auf die Notwendigkeit, Daten weiter zu verarbeiten, nachdem auf eine Serveranfrage geantwortet wurde. Ein solches Szenario beinhaltet die Verarbeitung eingehender Nachrichtenparameter („ID_OF_MESSAGE“ und „TEXT_OF_MESSAGE“) und das Generieren einer Antwort mit den Parametern „ANSWER_TO_ID“ und „RESPONSE_MESSAGE“.

Das Senden einer HTTP 200-Antwort an den Server wird jedoch sofort markiert die Nachricht, wie sie auf der Serverseite zugestellt wird. Dies stellt ein Dilemma dar, da eine sofortige Antwortgenerierung unerlässlich ist.

Um dieses Problem zu lösen, können Sie:

ignore_user_abort(true); //optional
set_time_limit(0);

ob_start();
// Handle initial processing
echo $response; // Send the response
header('Connection: close');
header('Content-Length: '.ob_get_length());
ob_end_flush();
@ob_flush();
flush();
fastcgi_finish_request(); //required for PHP-FPM (PHP > 5.3.3)

// Continue processing after request dispatch
die(); // Ensure script termination
Nach dem Login kopieren

Durch Festlegen von „ignore_user_abort()“ und „set_time_limit(0)“ kann das Skript unbegrenzt weiter ausgeführt werden . Die ob_*-Funktionen senden die Antwortheader und den Antworttext sofort. Die die()-Anweisung beendet das Skript, was notwendig ist, um eine unendliche Ausführung zu verhindern, wenn set_time_limit(0) verwendet wird.

Mit dieser Technik können Sie eingehende Anfragen verarbeiten, Antworten senden und die Verarbeitung Ihres PHP-Skripts ohne Wartezeit fortsetzen damit der Browser die vollständige Antwort erhält.

Das obige ist der detaillierte Inhalt vonWie kann ich PHP-Code ausführen, nachdem ich eine HTTP-Antwort gesendet habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage