Maison > développement back-end > tutoriel php > Comment puis-je continuer le traitement PHP après avoir envoyé une réponse ?

Comment puis-je continuer le traitement PHP après avoir envoyé une réponse ?

Patricia Arquette
Libérer: 2024-12-18 17:24:10
original
841 Les gens l'ont consulté

How Can I Continue PHP Processing After Sending a Response?

Poursuite du traitement PHP après l'envoi d'une réponse

Votre script PHP reçoit des données d'un serveur, les traite et génère une réponse. Cependant, vous êtes confronté à un problème où la réponse doit être envoyée au serveur immédiatement, mais un traitement supplémentaire doit être effectué par la suite.

Solution utilisant la mémoire tampon de sortie et FastCGI

Pour permettre à PHP de poursuivre le traitement après l'envoi d'une réponse, vous pouvez utiliser la solution suivante :

  1. Activer l'ignorance de l'abandon de l'utilisateur : ignore_user_abort(true); (facultatif)
  2. Définissez une limite de temps illimitée : set_time_limit(0);
  3. Utilisez la mise en mémoire tampon de sortie pour envoyer la réponse prématurément : ob_start();
  4. Envoyez la réponse et définissez en-têtes appropriés : echo $response ; suivi de header('Connexion : fermer'); et header('Content-Length: '.ob_get_length());;
  5. Videz le tampon de sortie : ob_end_flush(); @ob_flush(); flush();
  6. Pour les versions PHP supérieures à 5.3.3 fonctionnant sur PHP-FPM, terminez la requête : fastcgi_finish_request();
  7. Continuez votre traitement supplémentaire.
  8. Terminez le script : die(); (particulièrement crucial si set_time_limit(0) est utilisé)

Cette approche libérera la connexion au serveur Web tout en permettant à PHP de poursuivre l'exécution et d'effectuer le traitement post-réponse souhaité.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal