Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Datei-Download Chinesischer Dateiname verstümmelt

PHP-Datei-Download Chinesischer Dateiname verstümmelt

墨辰丷
Freigeben: 2023-03-29 21:00:02
Original
4496 Leute haben es durchsucht

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" );
Nach dem Login kopieren

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"
Nach dem Login kopieren

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 . '"');
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage