Heim > Artikel > Backend-Entwicklung > Was tun, wenn PHP-Downloads verstümmelte Zeichen aufweisen?
Lösung für von PHP heruntergeladenes verstümmeltes Excel: 1. Brechen Sie die Ausgabe aller Nicht-Dateiinformationen während des Downloadvorgangs ab. 2. Speichern Sie das ausgegebene Excel-Format und den Suffixnamen konsistent. 3. Verwenden Sie die Methode „ob_clean“, um den Puffer zu löschen .
Empfehlung: „PHP-Video-Tutorial“
Beim Schreiben von Code ist dieser Fehler aufgetreten, als PHP zum Herunterladen eines Excel-Dokuments verwendet wurde, das ich hochgeladen hatte:
Beim erzwungenen Öffnen erscheinen verstümmelte Zeichen.
Nach der Suche gibt es zwei Erklärungen:
1 Geben Sie während des Downloadvorgangs keine Nicht-Dateiinformationen aus, z. B. Echoprotokollinformationen. Andernfalls kann die heruntergeladene Datei nicht geöffnet werden, was auf einen Formatfehler oder eine Beschädigung der Datei hinweist.
2. Das ausgegebene Excel-Format muss mit dem gespeicherten Suffixnamen übereinstimmen, andernfalls wird ein Formatfehler angezeigt oder die Datei wird beschädigt.
Also habe ich die Position des Tags a geändert, auf das ich zum Herunterladen geklickt habe, und den Excel-Suffixnamen überprüft, aber es hat nicht funktioniert.
Später habe ich gesucht und festgestellt, dass es sich möglicherweise um ein Problem mit dem BOM-Header handelt, da beim Öffnen einer verstümmelten Datei drei Zeichen „0xEF 0xBB 0xBF“ davor stehen. Und PHP kann den BOM-Header nicht erkennen.
Erklärung des BOM-Headers: In einer UTF-8-codierten Datei befindet sich die BOM im Dateiheader und belegt drei Bytes, um anzuzeigen, dass die Datei zur UTF-8-Codierung gehört. Es handelt sich normalerweise um eine Zeichenfolge versteckter Zeichen. Viele Softwareprogramme können den BOM-Header erkennen und ignorieren, PHP jedoch nicht.
Daher können Sie editplus, ultraedit oder WINHEX und andere Software verwenden, um den Stücklistenkopf aus den Dateien zu entfernen, die hochgeladen werden müssen, und diese dann hochzuladen. Wenn Sie es heruntergeladen haben, entfernen Sie den Stücklistenkopf und öffnen Sie es erneut.
Darüber hinaus können Sie auch einen Code hinzufügen: ob_clean() zu Ihrer Lesedatei und fread, also vor der Ausgabe, um den Puffer zu leeren.
Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP-Downloads verstümmelte Zeichen aufweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!