


Introduction détaillée aux meilleures pratiques de PHP et UTF-8
L'article "Strings, Encoding, UTF-8 in PHP" décrit une série de connaissances de base, ce qui est relativement ennuyeux. Parlons maintenant de quelque chose d'utile - les meilleures pratiques pour le traitement des chaînes PHP. UTF-8", la deuxième partie des connaissances associées. Conclusion d'abord - Utilisez l'encodage UTF-8 dans tous les aspects de PHP .
Le niveau de langage PHP ne prend pas en charge le jeu de caractères Unicode, mais la plupart des problèmes peuvent être résolus via l'encodage UTF-8.
La meilleure pratique consiste à connaître clairement le codage d'entrée (le détecter si vous ne le savez pas), à le convertir uniformément en codage UTF-8 en interne et à convertir uniformément le codage de sortie en codage UTF-8.
Comment gérer UTF-8 au niveau PHP
Lorsque vous utilisez le jeu de caractères Unicode, veillez à installer l'extension mbstring et à utiliser les fonctions correspondantes au lieu des fonctions de chaîne natives. Par exemple, si un fichier est codé en code PHP UTF-8 et qu'il est incorrect d'utiliser la fonction strlen(), veuillez utiliser la fonction mb_strlen() à la place.
La plupart des fonctions de l'extension mbstring doivent être traitées en fonction d'un encodage (encodage interne). Veuillez vous assurer d'utiliser l'encodage UTF-8 de manière uniforme. La plupart de ces éléments peuvent être configurés dans PHP.INI.
À partir de PHP 5.6, la configuration default_charset peut remplacer mbstring.http_input, mbstring.http_output.
Une autre configuration importante est mbstring.langue. La valeur par défaut est Neutre (UTF-8).
Notez que l'encodage de fichier et l'encodage interne de l'extension mbstring ne sont pas le même concept.
En résumé :
Les parties de PHP.INI qui impliquent l'extension mbstring doivent utiliser UTF-8 autant que possible.
Veuillez utiliser les fonctions d'extension mbstring au lieu des fonctions natives de manipulation de chaînes.
Lorsque vous utilisez des fonctions associées, assurez-vous de comprendre le codage des caractères que vous utilisez. Lorsque vous utilisez les fonctions correspondantes, écrivez les paramètres de codage UTF-8 à l'écran. Par exemple, le troisième paramètre de la fonction htmlentities() affiche UTF -. 8.
Opérations d'E/S sur les fichiers : comment gérer UTF-8
Voici un exemple, si vous souhaitez ouvrir un fichier, mais que vous ne savez pas quel est l'encodage du contenu du fichier, comment le gérer ?
La meilleure pratique consiste à convertir uniformément en UTF-8 lors de l'ouverture, puis à reconvertir l'encodage d'origine après avoir modifié le contenu et à l'enregistrer dans le fichier. Regardez le code :
if ( mb_internal_encoding()!="UTF-8") { mb_internal_encoding("UTF-8"); } $file = "file.txt"; //一个编码为gbk的中文文件 $str= file_get_contents($file); //不管来源是什么编码,统一显示的时候转换为 UTF-8 if (mb_check_encoding($str,"GBK")) $str = mb_convert_encoding($str,"UTF-8",“GBK”); $str ="修改内容"; $str = mb_convert_encoding($str,$srcbm,"UTF-8"); //原样转回去 file_put_contents($file,$str);
Bonnes pratiques pour Mysql et UTF-8
C'est relativement simple. Tout d'abord, assurez-vous que votre MySQL est UTF-8. Ensuite, le client Mysql conserve également UTF-8 lors de la connexion. Plus précisément en PHP, lorsque l'extension imysql ou PDO se connecte à Mysql, UTF-8 est défini comme codage de connexion. Si les deux côtés sont cohérents, vous ne rencontrerez généralement pas de problèmes.
Si vous êtes intéressé, vous pouvez lire cet article
Bonnes pratiques pour les navigateurs et UTF-8
C'est également relativement simple, c'est-à-dire que si votre contenu de sortie est une page Web, alors votre sortie de traitement de chaîne doit toujours être UTF-8 en même temps, le default_charset est également clairement défini sur UTF-8 dans PHP.INI ; la balise Meta du HTML est également explicitement identifiée comme UTF-8.
Est-ce que tout va bien maintenant ? Non, bien que le serveur et le navigateur permettent aux utilisateurs d'utiliser le codage UTF-8, le comportement de l'utilisateur n'est pas contraignant. Il peut avoir saisi des caractères dans d'autres codages ou téléchargé des noms de fichiers avec des caractères dans d'autres codages, et alors. faire? L'encodage de l'utilisateur peut être détecté via les fonctions mb_http_input() et mb_check_encoding() puis converti en UTF-8 en interne. Assurez-vous qu'à tous les niveaux, le traitement final est un encodage UTF-8. En d’autres termes, vous avez besoin d’un moyen de savoir quel est le codage de votre entrée, et le codage de la sortie de contrôle après traitement est UTF-8.
Il n'est pas recommandé d'utiliser la directive mbstring.encoding_translation et la fonction mb_detect_encoding(). M'a torturé pendant une demi-journée.
Bonnes pratiques pour les systèmes d'exploitation et UTF-8
Pour des raisons liées au système d'exploitation, PHP dispose de mécanismes de traitement différents lors du traitement des noms de fichiers Unicode.
Sous Linux, le nom du fichier est toujours codé en UTF-8, et dans l'environnement Windows chinois, le nom du fichier est toujours codé en GBK.
Expliquez avec un exemple :
//命令行程序函数,运行在中文版 Windows 10 操作系统 ,文件编码为 UTF-8 function filenameexample() { $filename = "测试.txt" ; $gbk_filename = iconv("UTF-8","GBK",$filename); file_put_contents($gbk_filename, "测试"); echo file_get_contents($gbk_filename); } function scandirexample() { $arr = scandir("./tmp"); foreach ($arr as $v) { if ($v == "." || $v =="..") continue ; $filename = iconv( "GBK","UTF-8",$v ) ; $content = file_get_contents("./tmp/" . $v ); } }
Si vous ne souhaitez pas écrire un programme compatible avec Windows et Linux, vous pouvez coder en urlen le nom du fichier, tel que :
function urlencodeexample() { $filename = "测试2.txt" ; $urlencodefilename = urlencode($filename) ; file_put_contents($urlencodefilename, "测试"); echo file_get_contents($urlencodefilename); }
Lorsque vous utilisez PHP pour télécharger des fichiers via la fonction header(), vous devez également prendre en compte le navigateur et le système d'exploitation (la plupart des gens utilisent Windows). Pour Chrome, l'encodage du nom du fichier de sortie peut être UTF-8 et Chrome convertira automatiquement le nom du fichier en). Encodage GBK.
Pour les versions inférieures d'IE, il hérite de l'environnement du système d'exploitation, donc si le nom du fichier téléchargé est chinois, il doit être transcodé en codage UTF-8, sinon l'utilisateur verra un nom de fichier tronqué lors du téléchargement. Expliquez par le code :
$agent=$_SERVER["HTTP_USER_AGENT"]; if(strpos($agent,'MSIE')!==false { $filename = iconv("UTF-8","GBK","附件.txt"); header("Content-Disposition: attachment; filename=\"$filename\""); }
以上就是详细介绍PHP 与 UTF-8的最佳实践的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
