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

PHP-Datei-Download Chinesischer Dateiname verstümmelt

墨辰丷
墨辰丷Original
2018-06-05 17:04:004427Durchsuche

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!

Stellungnahme:
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