Heim > Artikel > Backend-Entwicklung > PHP-Datei-Download Chinesischer Dateiname verstümmelt
In diesem Artikel wird hauptsächlich der verstümmelte chinesische Dateiname zum Herunterladen von PHP-Dateien vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Wenn in PHP der Name der herunterzuladenden Datei chinesisch ist, wird der Dateititel verstümmelt.
Zu diesem Zeitpunkt müssen Sie den Titel codieren, was einen erweiterten URL-Code bedeutet, und ihn dann in den Header einfügen. Dann ist das Problem gelöst.
$filename = urlencode("下载文档"); header ( "Content-disposition: attachment; filename=$filename.xls" );
Online heißt es, dass in der Definition von RFC2231 die Inhaltsdisposition der mehrsprachigen Codierung wie folgt definiert werden sollte:
Der Code lautet wie folgt:
Content-Disposition: attachment; filename*="utf8''%E6%B5%8B%E8%AF%95.html"
Das heißt:
Dem Gleichheitszeichen nach dem Dateinamen muss ein * vorangestellt werden
Der Wert des Dateinamens ist in drei Segmente in einfache Anführungszeichen unterteilt: Zeichensatz (utf8), Sprache ( leer) und URL-codierter Dateiname.
Zu diesem Zeitpunkt sollte der Dateiname also in die URL-Kodierung konvertiert werden. Dies kann einfach mit dem URL-Code von PHP durchgeführt werden.
$ua = _SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode($filename); $encoded_filename = str_replace("+", "%20", $encoded_filename); header('Content-Type: application/octet-stream'); if (preg_match("/MSIE/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"'); } else if (preg_match("/Firefox/", $ua)) { header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"'); } else { header('Content-Disposition: attachment; filename="' . $filename . '"'); }
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass es für das Studium aller hilfreich sein wird.
Verwandte Empfehlungen:
Detaillierte Erläuterung der Prinzipien und Beispiele der Kettenoperation in PHP
So verwenden Sie PHP, um auf Alipays Instant zuzugreifen Zahlungsfunktion
So manipulieren Sie die MySQL-Datenbank mit PHP
Das obige ist der detaillierte Inhalt vonPHP-Datei-Download Chinesischer Dateiname verstümmelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!