Maison > développement back-end > tutoriel php > Comment puis-je exécuter du code PHP après avoir envoyé une réponse HTTP ?

Comment puis-je exécuter du code PHP après avoir envoyé une réponse HTTP ?

Susan Sarandon
Libérer: 2024-12-30 22:19:11
original
703 Les gens l'ont consulté

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

Exécution de PHP après l'envoi de la réponse

Un script PHP rencontre souvent la nécessité de traiter davantage les données après avoir répondu à une requête du serveur. Un de ces scénarios implique la gestion des paramètres des messages entrants ("ID_OF_MESSAGE" et "TEXT_OF_MESSAGE") et la génération d'une réponse avec les paramètres "ANSWER_TO_ID" et "RESPONSE_MESSAGE".

Cependant, l'envoi d'une réponse HTTP 200 au serveur marquera immédiatement le message tel que délivré côté serveur. Cela présente un dilemme car la génération de réponses immédiates est essentielle.

Pour surmonter ce problème, vous pouvez :

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
Copier après la connexion

En définissant ignore_user_abort() et set_time_limit(0), le script peut continuer à s'exécuter indéfiniment. . Les fonctions ob_* envoient immédiatement les en-têtes et le corps de la réponse. L'instruction die() termine le script, ce qui est nécessaire pour empêcher une exécution infinie lorsque set_time_limit(0) est utilisé.

Cette technique vous permet de gérer les requêtes entrantes, d'envoyer des réponses et de continuer à traiter votre script PHP sans attendre. pour que le navigateur reçoive la réponse complète.

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