Dans votre quête pour vous connecter à une caméra Web et relayer des données via un script de relais, vous' J'ai rencontré un problème de mise en mémoire tampon indésirable. Pour résoudre cet obstacle, examinons les spécificités des mécanismes de mise en mémoire tampon de PHP et leur impact potentiel sur votre script.
La première couche de mise en mémoire tampon Nous rencontrerons le « tampon de sortie », qui gère exclusivement la sortie destinée au corps de la réponse, sans affecter les en-têtes. Par défaut, PHP met en mémoire tampon jusqu'à 4 096 octets dans ce tampon, le vidant lorsque ce seuil est dépassé ou lorsque des instructions d'écho et des actions génératrices de sortie similaires se produisent.
Pour remplacer ce comportement par défaut, vous pouvez choisir de désactiver la sortie. mise en mémoire tampon en définissant la directive output_buffering sur Off dans votre fichier php.ini. Vous pouvez également le désactiver pour des scripts individuels en appelant ob_end_clean() ou ob_end_flush() dès le début.
Au-delà de la sortie buffer se trouve une couche tampon supplémentaire connue sous le nom de « tampon d'écriture », qui fonctionne en conjonction avec n'importe quel tampon utilisé par votre serveur Web. Lorsque vous utilisez Apache avec mod_php (sans mod_gzip), l'appel de flush() vient à votre aide, envoyant la sortie vers le navigateur. D'autres backends peuvent également prendre en charge cela, bien que le manuel PHP n'offre aucune garantie.
Enfin, vous disposez de deux manières de déclencher automatiquement flush() appelle après chaque action de sortie :
Avec ces informations à votre disposition, vous possédez les moyens de résoudre le problème de mise en mémoire tampon qui afflige votre script de relais et d'ouvrir la voie à des données transparentes. diffusion en continu.
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!