Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem verstümmelter Dateien, die von PHP-Fgets gelesen werden

So lösen Sie das Problem verstümmelter Dateien, die von PHP-Fgets gelesen werden

藏色散人
藏色散人Original
2020-08-01 10:19:154386Durchsuche

Lösung für verstümmelten PHP-Code: Klicken Sie zuerst auf „Menüänderung->Seiteneigenschaften->Titel/Kodierung“; wählen Sie dann „Vereinfachtes Chinesisch“ aus und klicken Sie abschließend auf „Neu laden“. , verwenden Sie die Funktion „fgets“ erneut, um die Datei zu lesen.

So lösen Sie das Problem verstümmelter Dateien, die von PHP-Fgets gelesen werden

Empfohlen: „PHP-Video-Tutorial

Lösung für verstümmelten chinesischen Code in von PHP gelesenen TXT-Dateien

1: Wenn die geöffnete Seite verstümmelte Zeichen enthält, machen Sie sich keine Sorgen, nehmen Sie noch keine Bearbeitung vor, denken Sie daran

2: Klicken Sie dann auf das Menü zum Ändern -> Seiteneigenschaften -> Titel/Kodierung

3: Wählen Sie Vereinfachtes Chinesisch (gb2321) in der Kodierung

4: Klicken Sie auf Neu laden -> Bestätigen

Erstellen Sie einen neuen Notizblock, nicht WordPad, und kopieren Sie ihn dann Speichern Sie alle zu lesenden Dateien und verwenden Sie dann den folgenden Code, um die Notepad-Datei 1303275.txt zu lesen. Es wurde festgestellt, dass nach dem Wechsel zur utf8-Codierung alles normal angezeigt wird , die Zahlen sind normal und die chinesischen Schriftzeichen sind auch normal.

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

Die obige Methode ist umständlich, löst aber auch das Problem. Im Folgenden stelle ich eine Lösung bereit, die keinen Text durcheinander bringt . Der Code lautet wie folgt:

/* 
@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); 
 
}

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem verstümmelter Dateien, die von PHP-Fgets gelesen werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn