Heim > Artikel > Backend-Entwicklung > So lösen Sie das Problem verstümmelter Dateien, die von PHP-Fgets gelesen werden
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.
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 = 'utf-8'; elseif ($first4 == $utf32_big_endian_bom) $icon = 'utf-32be'; elseif ($first4 == $utf32_little_endian_bom) $icon = 'utf-32le'; elseif ($first2 == $utf16_big_endian_bom) $icon = 'utf-16be'; elseif ($first2 == $utf16_little_endian_bom) $icon = 'utf-16le'; else { $icon = 'ascii'; 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!