Poursuite du traitement PHP après réponse
Lors du traitement de demandes nécessitant des réponses immédiates, il peut être nécessaire de poursuivre le traitement PHP après l'envoi de la réponse initiale au client.
Votre script reçoit des paramètres d'un serveur, génère une réponse et doit empêcher le serveur de considérer le message comme livré avant lui. peut continuer le traitement. Bien que l'enregistrement du message dans une base de données et l'utilisation d'une tâche cron puissent être une solution, ce n'est pas idéal pour les réponses en temps réel.
Pour résoudre ce problème, vous pouvez utiliser les fonctions PHP suivantes :
ignore_user_abort(true); // Not required but recommended set_time_limit(0); // No time limit ob_start(); // Handle the request and generate the response 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 // Continue PHP processing after the response has been sent die(); // **Important** to ensure cleanup if set_time_limit(0) is used
En utilisant ces fonctions, vous pouvez envoyer une réponse au client, fermer la connexion et continuer à exécuter votre script PHP sans être interrompu. Cela permet des réponses immédiates tout en permettant un traitement asynchrone du message.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!