Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich die PHP-Skriptausführung nach dem Senden einer HTTP-Antwort fortsetzen?

Wie kann ich die PHP-Skriptausführung nach dem Senden einer HTTP-Antwort fortsetzen?

DDD
Freigeben: 2024-12-14 03:44:15
Original
740 Leute haben es durchsucht

How Can I Continue PHP Script Execution After Sending an HTTP Response?

Fortsetzung der PHP-Ausführung nach dem Senden einer Antwort

In einem Szenario, in dem ein PHP-Skript eine eingehende Nachricht empfängt, sie verarbeitet und eine Antwort an sendet Beim anfragenden Server besteht die Notwendigkeit, die Ausführung des PHP-Skripts nach dem Senden der ersten Antwort fortzusetzen. Dies wird zu einer Herausforderung, da der Server die Nachricht normalerweise als zugestellt markiert, wenn er eine HTTP 200-Antwort erhält.

Vermeidung von Datenbankspeicherung und Cron-Jobs

Anstatt auf das Speichern von Nachrichten zurückzugreifen Wenn Sie eine Datenbank erstellen und sich auf einen Cron-Job verlassen, gibt es eine unmittelbarere Lösung. Dazu gehört das Senden der HTTP 200-Antwort und die anschließende Fortsetzung der PHP-Skriptausführung.

PHP-Skriptimplementierung

Um diese Lösung zu implementieren, befolgen Sie diese Schritte in Ihrem PHP-Skript:

ignore_user_abort(true); // Not required but can prevent premature termination
set_time_limit(0);

ob_start();
// Perform initial processing here
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 script execution
// ...

die(); // End the script especially when set_time_limit=0 is used and the task is complete
Nach dem Login kopieren

Diese Codesequenz ermöglicht es dem Skript, die Antwort zu senden, der PHP-Prozess läuft jedoch weiter. Sie können bei Bedarf weitere Verarbeitungen oder Aufgaben durchführen oder eine weitere Antwort senden. Es ist wichtig, am Ende die() aufzurufen, um das Skript zu beenden und Ressourcen freizugeben.

Das obige ist der detaillierte Inhalt vonWie kann ich die PHP-Skriptausführung nach dem Senden einer HTTP-Antwort fortsetzen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage