Comment résoudre le problème des fichiers tronqués lus par php fgets

藏色散人
Libérer: 2023-03-03 16:46:02
original
4423 Les gens l'ont consulté

Solution pour php fget le code tronqué : Cliquez d'abord sur "Menu Modification->Page Properties->Titre/Encodage" puis sélectionnez "Chinois simplifié" dans l'encodage puis cliquez sur "Recharger" pour confirmer ; , réutilisez la fonction "fgets" pour lire le fichier.

Comment résoudre le problème des fichiers tronqués lus par php fgets

Recommandé : "Tutoriel vidéo PHP"

Solution au code chinois tronqué chinois dans les fichiers txt lus par php

1 : Si la page ouverte comporte des caractères tronqués, ne vous inquiétez pas, ne faites aucune modification pour l'instant, n'oubliez pas

2 : Cliquez ensuite sur le menu pour modifier -> Propriétés de la page -> Titre/Encodage

3 : Sélectionnez Chinois simplifié (gb2321) dans l'encodage

4 : Cliquez sur Recharger -> Confirmer

Créez un nouveau bloc-notes, pas WordPad, puis copiez tous les fichiers à lire pour enregistrer ce fichier bloc-notes, puis utilisez le code suivant pour lire le fichier bloc-notes 1303275.txt. Il s'avère que lorsque la page Web est codée en gb2312, tout s'affiche normalement après le passage au codage utf8. , les chiffres sont normaux et les caractères chinois sont tronqués.

<?php 
  $file = fopen("1303275.txt","r");//只读方式打开文本文件 
  while(! feof($file))//当文件不结束 
  { 
      $line=fgets($file);//读一行到$line变量 
      echo $line."<br />"; 
  }  
  fclose($file);//关闭文本文件 
 
?>
Copier après la connexion

La méthode ci-dessus est lourde mais elle résout également le problème. Ci-dessous, je propose une solution qui ne gâchera aucun texte txt. . Le code est le suivant :

/* 
@params $str 输入字符 $type 所需获取编码 
@author 长行 
*/ 
function autoiconv($str,$type = "gb2312//ignore"){ 
 
$utf32_big_endian_bom = chr(0x00) . chr(0x00) . chr(0xfe) . chr(0xff); 
$utf32_little_endian_bom = chr(0xff) . chr(0xfe) . chr(0x00) . chr(0x00); 
$utf16_big_endian_bom = chr(0xfe) . chr(0xff); 
$utf16_little_endian_bom = chr(0xff) . chr(0xfe); 
$utf8_bom = chr(0xef) . chr(0xbb) . chr(0xbf); 
 
$first2 = substr($str, 0, 2); 
$first3 = substr($str, 0, 3); 
$first4 = substr($str, 0, 3); 
 
if ($first3 == $utf8_bom) $icon = &#39;utf-8&#39;; 
elseif ($first4 == $utf32_big_endian_bom) $icon = &#39;utf-32be&#39;; 
elseif ($first4 == $utf32_little_endian_bom) $icon = &#39;utf-32le&#39;; 
elseif ($first2 == $utf16_big_endian_bom) $icon = &#39;utf-16be&#39;; 
elseif ($first2 == $utf16_little_endian_bom) $icon = &#39;utf-16le&#39;; 
else { $icon = &#39;ascii&#39;; return $str;} 
 
return iconv($icon,$type,$str); 
 
}
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:
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