Maison  >  Article  >  développement back-end  >  Le vidage PHP n'est pas valide, méthode de sortie PHP en temps réel sous IIS7

Le vidage PHP n'est pas valide, méthode de sortie PHP en temps réel sous IIS7

墨辰丷
墨辰丷original
2018-06-01 14:42:331385parcourir

Cet article présente principalement le php flush invalide et la méthode de sortie en temps réel de php sous IIS7. Les amis qui en ont besoin peuvent s'y référer

Dans une opération relativement longue, je souhaite enregistrer le. opération en temps réel sur le navigateur. Lorsqu'il est affiché, flush() est utilisé pour envoyer le contenu du tampon au navigateur. Mais dans iis7, PHP configuré en mode fastcgi ne peut pas être implémenté et les résultats sont toujours affichés ensemble.

for ($i=10; $i>0; $i--)
{
  echo $i.&#39;<br />&#39;;
  @ob_flush();
  flush();
  sleep(1);
}

Le code ci-dessus ne peut pas afficher progressivement les résultats sous les paramètres par défaut d'IIS. La solution est la suivante :

Ouvrez le fichier C:WindowsSystem32inetsrvconfigapplicationHost.config Notez que si votre système est un système 64 bits, ce fichier doit être ouvert avec un logiciel d'édition 64 bits. Le logiciel 32 bits vous indiquera que le fichier n'existe pas. Ouvrez-le simplement avec le Bloc-notes fourni avec le système. Recherchez le paragraphe suivant et ajoutez le code rouge, c'est-à-dire ajoutez ResponseBufferLimit="0" au gestionnaire php.

Copiez le code Le code est le suivant :

<handlers accessPolicy="Read, Script">
<add name="PHP_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\PHP\php-cgi.exe" resourceType="Either" responseBufferLimit="0" />

Maintenant vous pouvez l'essayer, si cela ne fonctionne toujours pas, définissez output_buffering = Off en php .ini.

Le dernier point est très important. Il produira des résultats différents selon les navigateurs. Il ne devrait y avoir aucun problème dans IE. Si vous utilisez Chrome, chaque contenu d'écho doit contenir du HTML, sinon cela ne fonctionnera pas. De plus, si le contenu d'écho est trop court, cet effet ne peut pas être obtenu avant le code. Un espace, tel que : echo str_pad(' ", 1050); Chrome semble devoir d'abord générer plus de 1 000 caractères pour avoir cet effet. Si cela ne fonctionne pas, essayez-en davantage.

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

utiliser le mot-clé et le chargement de fichiers en PHP

phpCompte public WeChat Explication détaillée de mode de développement

Explication détaillée de l'interaction et de l'interface de la plateforme publique php WeChat

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!

Déclaration:
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