Quelles sont les méthodes utilisées par PHP pour résoudre le problème de l'écriture de caractères txt tronqués ?

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2023-06-06 13:41:23
original
1385 Les gens l'ont consulté

Il existe trois façons pour PHP de résoudre les caractères tronqués lors de l'écriture de txt : 1. Définir l'encodage du fichier Avant d'écrire le fichier, vous pouvez définir l'encodage du fichier sur UTF-8 en appelant "mb_internal_encoding()" et "mb_http_output(). )" ; 2. Afficher la marque d'ordre des octets de la nomenclature pour identifier la méthode de codage Unicode utilisée par le fichier pour éviter les caractères tronqués ; 3. Utiliser la fonction fwrite() avec des options pour garantir que la longueur des données écrites dans le fichier est la même que celle la longueur fournie pour éviter les caractères tronqués.

Quelles sont les méthodes utilisées par PHP pour résoudre le problème de l'écriture de caractères txt tronqués ?

Le système d'exploitation de ce tutoriel : système Windows 10, version php8.1.3, ordinateur Dell G3.

Solution au txt tronqué écrit par php :

1. Définissez l'encodage du fichier

Avant d'écrire le fichier, vous pouvez définir l'encodage du fichier sur UTF-8 en appelant les fonctions mb_internal_encoding() et mb_http_output().

<?php
// 设置内部字符编码为UTF-8
mb_internal_encoding(&#39;UTF-8&#39;);
// 设置 HTTP 输出字符编码为UTF-8
mb_http_output(&#39;UTF-8&#39;);
$file = &#39;data.txt&#39;;
$content = &#39;你好世界!&#39;;
$handle = fopen($file, &#39;w&#39;);
fwrite($handle, $content);
fclose($handle);
?>
Copier après la connexion

2. Output BOM Byte Order Mark

BOM (Byte Order Mark) est une séquence d'octets spéciale qui apparaît généralement au début d'un fichier texte Unicode et est utilisée pour identifier la méthode de codage Unicode utilisée par le fichier (. big-endian ou small-endian). S'il n'y a pas de marque de nomenclature dans l'en-tête du fichier, le texte peut être tronqué.

Vous pouvez utiliser le code suivant pour afficher la marque BOM dans le fichier :

<?php
$file = &#39;data.txt&#39;;
$content = "\xEF\xBB\xBF" . &#39;你好世界!&#39;;  // 在内容前添加BOM标记
$handle = fopen($file, &#39;w&#39;);
fwrite($handle, $content);
fclose($handle);
?>
Copier après la connexion

3. Utilisez la fonction fwrite() avec des options

La fonction fwrite() peut accepter un troisième paramètre facultatif, indiquant le contenu à être écrit La longueur de la chaîne. Si la longueur des données écrites dans le fichier ne correspond pas à la longueur fournie, des caractères tronqués apparaîtront. Par conséquent, en utilisant cette option, vous pouvez vous assurer que les données écrites dans le fichier ont la même longueur que la longueur fournie.

<?php
$file = &#39;data.txt&#39;;
$content = &#39;你好世界!&#39;;
$handle = fopen($file, &#39;w&#39;);
$length = strlen($content);
fwrite($handle, $content, $length);
fclose($handle);
?>
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal