Lösungen für verstümmeltes Excel, das von PHP heruntergeladen wurde: 1. Geben Sie während des Downloadvorgangs keine Nicht-Dateiinformationen aus. 2. Speichern Sie das ausgegebene Excel-Format und den Suffixnamen konsistent. 3. Verwenden Sie die Funktion „ob_clean()“, um das zu löschen Puffer.
Empfohlen: „PHP-Video-Tutorial“
Beim Schreiben von Code trat dieser Fehler auf, als ich PHP zum Herunterladen eines Excel-Dokuments verwendete, 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 zu einem Formatfehler führt oder die Datei beschädigt ist.
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 vonSo lösen Sie das verstümmelte Problem des von PHP heruntergeladenen Excel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!