Maison > développement back-end > tutoriel php > Comment maintenir l'exécution de PHP après l'envoi d'une réponse HTTP ?

Comment maintenir l'exécution de PHP après l'envoi d'une réponse HTTP ?

Patricia Arquette
Libérer: 2024-11-26 08:33:09
original
950 Les gens l'ont consulté

How to Maintain PHP Execution After Sending an HTTP Response?

Maintenir l'exécution de PHP après la réponse HTTP

Le maintien de l'exécution de PHP au-delà de la réponse HTTP nécessite des considérations particulières, en particulier dans des environnements comme mod_php. Pour relever ce défi, la solution suivante est présentée :

Pour envoyer une réponse HTTP tout en poursuivant l'exécution de PHP, vous pouvez exploiter l'extrait de code suivant :

<?php
ob_end_clean();
header("Connection: close");
ignore_user_abort(); // Optional
ob_start();
echo('Text the user will see');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Enable strange behavior
flush();            // Required for behavior to work
session_write_close(); // Suggested enhancement to ensure session data is saved
// Perform processing here
sleep(30);
echo('Text user will never see');
?>
Copier après la connexion

Ce code effectue les étapes suivantes :

  1. Nettoie le tampon de sortie.
  2. Définit l'en-tête "Connexion : fermer" pour terminer le HTTP connexion.
  3. Ignore toute tentative de l'utilisateur d'abandonner le script (facultatif).
  4. Démarre un nouveau tampon de sortie pour capturer toute sortie restante.
  5. Envoie un message à l'utilisateur ( qui sera affiché immédiatement).
  6. Calcule la longueur du tampon de sortie et définit la "Content-Length" header.
  7. Vidue le tampon de sortie pour envoyer les en-têtes de réponse et le message au client.
  8. Ferme la session pour garantir que toutes les modifications apportées sont enregistrées.
  9. Exécute tout traitement nécessaire , ce qui peut prendre jusqu'à une minute.
  10. Émet des messages ou des résultats supplémentaires (ceux-ci ne seront pas envoyés au client).

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