Comment désactiver le tampon en php : 1. Ouvrez le répertoire d'installation de PHP, recherchez et ouvrez le fichier de configuration "php.ini" ; 2. Dans le fichier de configuration, recherchez l'élément "output_buffering" et définissez la valeur de l'élément sur "Off". C'est tout.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
Tampon PHP (buffer)
Les informations de sortie du script sont d'abord mises dans le tampon, et seulement lorsque le tampon est plein ou une fois l'exécution du script terminée, les données seront transférées à l'étape suivante. Vous pouvez trouver l'élément de paramètre output_buffering
dans le fichier de configuration php.ini. Ma configuration par défaut (Windows/XAMPP v3.2.2) est 4096
Si elle est définie sur On, le tampon est disponible et il n'y a pas de limite de taille ;
Si set est désactivé, le tampon n'est pas disponible ;
S'il est défini sur un nombre entier, le tampon est disponible et a la taille définie en octetsIl convient de noter que ini_set ne peut pas définir la taille du tampon. a été effectué lors de l'initialisation de l'environnement d'exécution du script. D'accord, la définition du tampon est effectuée ; output_buffering est toujours désactivé par défaut en mode cli. Alors la question est : quelle est la différence entre fermer et ouvrir le tampon ? À quoi sert la taille initiale du tampon ? Le mode cli est désactivé par défaut. Peut-il être activé si l'entreprise en a besoin ? Quels sont les avantages de la zone de cache ?1. Quelle est la différence entre fermer et ouvrir le tampon ?
Inspection du code réussieLorsque output_buffering est configuré sur 4096, exécutez le code2. Quel est le rôle de la taille initiale du buffer ?
Changer output_buffering de 4096 à 5 pour faciliter les tests
Exécuter le codeDescription de la sortie : Après avoir attendu 3 secondes, sortie 1234end
Description de la sortie : Sortie 12345 , attends 3 Quelques secondes plus tard, la sortie se termine
3. Le mode cli est désactivé par défaut. Peut-il être activé si l'entreprise en a besoin ?
Cette question peut être complétée. En mode non-cli, si php.ini définit le tampon pour qu'il soit désactivé, mais que l'entreprise a besoin d'utiliser le tampon, que dois-je faire ? Bien sûr, ce ne sera pas si difficile. Voici une autre fonction ob,
ob_start(); //Ouvre un tampon de sortie. Toutes les informations de sortie ne sont plus envoyées directement au navigateur, mais sont enregistrées dans le tampon de sortie. . Maintenant que nous savons que le tampon PHP est similaire au concept de zone de stockage de données temporaire, revenons en arrière et regardons le code source de TP5.Premier coup d'œil à l'explication des fonctions ob_get_level et ob_get_clean
ob_get_level() : Renvoie le niveau d'imbrication du mécanisme de mise en mémoire tampon de sortie.
ob_get_clean() : Récupère le contenu du tampon actuel et supprime le tampon de sortie actuel.
Nous pouvons également apprendre une ou deux choses à partir du code. Si l'acquisition du niveau est supérieure à 0, récupérez le contenu du tampon et supprimez le tampon, puis ouvrez-en un nouveau via ob_start. la "réapplication" expliquée dans les commentaires.
Ce qu'on appelle l'imbrication est expliqué ici. Quant à savoir quand la valeur du niveau sera 0, et si ce n'est pas 0, qu'est-ce que c'est ? Veuillez désactiver php.ini Output_buffering et Output pour voir le résultat. De plus, ob_start plusieurs fois et ob_get_level plusieurs fois, essayons de comparer les résultats de sortie.
Jetons d'abord un coup d'œil aux deux modèles
Lorsque ob_start ouvre un nouveau tampon plusieurs fois, la structure de données est construite comme le deuxième type, qui est l'imbrication. ob_get_level renvoie le niveau imbriqué.
Personnellement compris, l'imbrication peut être comparée au mécanisme de streaming de Java. Les données d'un tampon sont sorties vers le tampon suivant, puis des opérations personnalisées peuvent être effectuées sur les données.
En regardant maintenant le code source de TP5, l'idée est plus claire. Si le système initialise le tampon, supprimez-le d'abord, puis rouvrez-le car sa taille peut être limitée. La taille de la zone de cache ouverte en exécutant ob_start est "assez grande", mais il n'y a pas de description spécifique de sa taille. Je sais seulement que quelle que soit la taille des données écrites, elles ne seront envoyées qu'à la fin. le script
4. Quels sont les avantages de la zone cache ?
Les données de sortie PHP sont envoyées au serveur Web. Si echo est exécuté et envoyé une fois, cela augmente la consommation de ressources. Il est préférable de les stocker en mémoire et de les envoyer uniformément, ce qui est plus efficace.
Les requêtes Web contiennent des en-têtes HTTP et il ne peut y avoir de sortie avant que les en-têtes ne soient définis. Le tampon PHP fait ce travail pour nous, en produisant diverses données avant d'envoyer l'en-tête. Le tampon enverra d'abord les informations d'en-tête à WebSever, puis enverra les paquets de données de manière uniforme.
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!