Maison >développement back-end >Problème PHP >Comment définir l'encodage de l'en-tête en php

Comment définir l'encodage de l'en-tête en php

藏色散人
藏色散人original
2021-09-14 10:09:212676parcourir

Comment définir l'encodage de l'en-tête en php : 1. Ouvrez le fichier PHP correspondant ; 2. Définissez l'encodage via la syntaxe "header("content-type:text/html; charset=xxx");"

Comment définir l'encodage de l'en-tête en php

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

Comment paramétrer l'encodage dans l'en-tête en php ?

header("content-type:text/html; charset=xxx");

La fonction de cette fonction header() consiste à envoyer les informations entre parenthèses à l'en-tête http.

Si le contenu entre parenthèses est tel que mentionné dans l'article, la fonction est fondamentalement la même que la balise 3f2ae36b77c0b1762e465ca019e7bd30. Si vous la comparez avec la première, vous constaterez que les caractères sont similaires. Mais la différence est que s’il existe cette fonction, le navigateur utilisera toujours l’encodage xxx que vous avez demandé et ne désobéira jamais, cette fonction est donc très utile. Pourquoi cela se produit-il ? Ensuite, nous devons parler de la différence entre l'en-tête HTTPS et les informations HTML :

L'en-tête https est une chaîne envoyée par le serveur avant de transmettre les informations HTML au navigateur via le protocole HTTP.

Étant donné que la balise méta appartient aux informations HTML, le contenu envoyé par header() atteint le navigateur en premier. Le point populaire est que header() a une priorité plus élevée que meta (je ne sais pas si cela peut être dit). Ajoutez une page php contenant à la fois header("content-type:text/html; charset=xxx") et 1dd9d9bc813bb1594796bd2b8615c022 le navigateur ne reconnaîtra que l'ancien en-tête http et non la méta. Bien entendu, cette fonction ne peut être utilisée qu’au sein des pages PHP.

Il reste également une question : pourquoi le premier fonctionne-t-il définitivement, mais le second ne fonctionne parfois pas ? C'est pourquoi nous voulons ensuite parler d'Apache.

AddDefaultCharset

Dans le dossier conf du répertoire racine d'Apache, se trouve l'intégralité du document de configuration d'Apache httpd.conf.

Ouvrez httpd.conf avec un éditeur de texte. La ligne 708 (peut être différente selon les versions) contient AddDefaultCharset xxx, où xxx est le nom d'encodage. La signification de cette ligne de code : définissez le jeu de caractères dans l'en-tête https du fichier de page Web sur l'ensemble du serveur sur votre jeu de caractères xxx par défaut. Avoir cette ligne équivaut à ajouter un en-tête ("content-type: text/html; charset=xxx") à chaque fichier. Vous pouvez maintenant comprendre pourquoi le navigateur utilise toujours gb2312 même si le paramètre méta est utf-8.

S'il y a un header("content-type:text/html; charset=xxx") dans la page Web, le jeu de caractères par défaut sera remplacé par le jeu de caractères que vous avez défini, cette fonction sera donc toujours utile. Si vous ajoutez un "#" devant AddDefaultCharset xxx, commentez cette phrase et que la page ne contient pas d'en-tête ("content-type..."), alors c'est au tour de la balise méta de prendre effet.

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!

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