Heim > Artikel > Backend-Entwicklung > Was tun, wenn php+fread() verstümmelt ist?
php+fread() verstümmelter Code liegt daran, dass die Kodierung der Ausgabeseite nicht mit der Kodierung der gelesenen Datei übereinstimmt. Die Lösung: 1. Öffnen Sie die entsprechende PHP-Datei. 2. Lesen Sie die Datei über die Funktion fread. Durch die Methode „iconv('gbk', 'utf-8', $data)“ wird der gelesene Inhalt transkodiert.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 8.1, DELL G3-Computer
Was soll ich tun, wenn php+fread() verstümmelt ist?
In PHP werden Dateien direkt über die fread-Funktion gelesen. Wenn der Dateiinhalt auf chinesische Zeichen stößt, wird das Problem verstümmelt.
Möglicherweise stimmt die Kodierung der Ausgabeseite nicht mit der Kodierung der gelesenen Datei überein.
Lösung:
Versuchen Sie, den Inhalt nach dem Lesen zu transkodieren
iconv('gbk', 'utf-8', $data)
Zugehörige Einführung:
iconv
(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8 )
iconv – Konvertieren Sie die Zeichenfolge entsprechend der erforderlichen Zeichenkodierung
Beschreibung
iconv(string $in_charset, string $out_charset, string $str): string
Konvertieren Sie die Zeichenfolge str von in_charset in out_charset.
Parameter
in_charset
Eingabezeichensatz.
out_charset
Zeichensatz für die Ausgabe.
Wenn Sie nach out_charset die Zeichenfolge //TRANSLIT hinzufügen, wird die Transliterationsfunktion aktiviert. Das heißt, wenn ein Zeichen nicht durch den Zielzeichensatz dargestellt werden kann, kann es durch ein oder mehrere ähnliche Zeichen angenähert werden. Wenn Sie die Zeichenfolge //IGNORE hinzufügen, werden Zeichen, die nicht im Zielzeichensatz ausgedrückt werden können, stillschweigend verworfen. Andernfalls wird ein E_NOTICE ausgelöst und false zurückgegeben.
warning
//TRANSLIT 运行细节高度依赖于系统的 iconv() 实现(参见 ICONV_IMPL)。 据悉,某些系统上的实现会直接忽略 //TRANSLIT,所以转换也有可能失败,out_charset 会是不合格的。
str
Die zu konvertierende Zeichenfolge.
Rückgabewert
Gibt die konvertierte Zeichenfolge zurück oder gibt bei einem Fehler false zurück.
fread()
fread()-Funktion liest eine geöffnete Datei.
Die Funktion stoppt die Ausführung, wenn sie die angegebene Länge oder das Ende der Datei (EOF) erreicht (je nachdem, was zuerst eintritt).
Diese Funktion gibt die gelesene Zeichenfolge zurück oder FALSE, wenn sie fehlschlägt.
Syntax
string fread ( resource $handle , int $length )
Parameter
handle Der Dateisystemzeiger ist eine Ressource, die normalerweise von fopen() erstellt wird.
Länge Erforderlich. Gibt die maximale Anzahl der zu lesenden Bytes an.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas tun, wenn php+fread() verstümmelt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!