<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Voici quelques choses qui ne sont pas liées au contenu de l'article PHP Code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Initialiser l'environnement...\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// L'article commence</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<h1>utiliser </span><span><span class="hljs-title function_ invoke__">flush</span></span><span>() Pas efficace?Probablement le vôtre Web Il y a un problème avec la configuration du serveur</h1>
<p>exister PHP En cours de développement,`</span><span><span class="hljs-title function_ invoke__">flush</span></span><span>()` 函数常被utiliser来立即将输出发送到客户端,Au lieu d'attendre que le script soit exécuté avant de le sortir uniformément。它exister实现长时间运行的任务、Affichage du journal en temps réel、或者进度条更新时非常有utiliser。Cependant,De nombreux développeurs rencontreront un problème:明明调utiliser了 <code></span><span><span class="hljs-title function_ invoke__">flush</span></span><span>()Même si la sortie PHP a été rincée, les serveurs Web (comme Apache, Nginx) peuvent continuer à mettre en cache la sortie jusqu'à ce que le tampon soit plein ou que le script soit terminé. Situations courantes:
Certains navigateurs attendront une certaine quantité de données avant de commencer à rendre la page, surtout lorsque la sortie est très petite. Pratiques courantes:
<span><span><?php</span></span><span>
</span><span><span>// Désactiver la tampon de sortie PHP</span></span><span>
</span><span><span>while</span></span> <span>(</span> <span><span class="function_ invoke__">ob_get_level</span></span> <span>()></span> <span><span>0</span></span> <span>) {
</span><span><span class="function_ invoke__">ob_end_flush</span></span> <span>();
}
</span><span><span>écho</span></span><span> </span><span><span class="function_ invoke__">str_repeat</span></span> <span>(</span> <span><span>""</span></span> <span>,</span> <span><span>1024</span></span> <span>);</span> <span><span>// Envoyez suffisamment de données pour déclencher le rendu du navigateur</span></span><span>
</span><span><span>pour</span></span> <span>(</span> <span><span>$ i</span></span> <span>=</span> <span><span>1</span></span> <span>;</span> <span><span>$ i</span></span> <span><=</span> <span><span>5</span></span> <span>;</span> <span><span>$ i</span></span> <span>++) {
</span><span><span>écho</span></span><span> </span><span><span>"Étape de traitement <span>$ i</span></span></span> <span>...<br> \ n ";
</span><span><span class="function_ invoke__">flush</span></span> <span>();
</span><span><span class="function_ invoke__">sommeil</span></span> <span>(</span> <span><span>1</span></span> <span>);
}
</span><span><span>?></span></span><span>
</span></span><p>Avec la méthode ci-dessus, vous pouvez vous assurer que <span class="fun">Flush ()</span> peut prendre effet normalement dans la plupart des cas. Cependant, n'oubliez pas que la latence de sortie peut être le résultat de l'influence combinée de plusieurs liens de PHP, serveur Web et navigateur, et doit être vérifié par calque.</p> <span><span><?php</span></span><span>
</span><span><span>// la fin de l'article, la fin du contenu n'est pas liée au contenu</span></span><span>
</span><span><span>écho</span></span><span> </span><span><span>"L'article est chargé. \ N"</span></span> <span>;</span> <span><span>?></span></span><span>
</span></span></div></div>