Maison  >  Article  >  développement back-end  >  Téléchargement du fichier PHP Nom du fichier chinois tronqué

Téléchargement du fichier PHP Nom du fichier chinois tronqué

墨辰丷
墨辰丷original
2018-06-05 17:04:004399parcourir

Cet article présente principalement le nom de fichier chinois tronqué du téléchargement du fichier PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

En PHP, si le nom du fichier à télécharger est chinois, le titre du fichier sera tronqué.

À ce stade, vous devez encoder le titre, ce qui signifie un code urlen avancé, puis mettre l'en-tête, et le problème est alors résolu.

$filename = urlencode("下载文档");
header ( "Content-disposition: attachment; filename=$filename.xls" );

Il est dit en ligne que dans la définition de la RFC2231, l'encodage multilingue Content-Disposition doit être défini comme ceci :

Le code est le suivant :

Content-Disposition: attachment; filename*="utf8''%E6%B5%8B%E8%AF%95.html"

C'est-à-dire :

Avant le signe égal après le nom de fichier, ajoutez *
La valeur du nom de fichier est divisée en trois segments avec des guillemets simples, qui sont un jeu de caractères (utf8), la langue (vide) et nom de fichier codé en urlen.

Donc, à ce stade, le nom du fichier doit être converti en codage d'URL. Cela peut être facilement fait en utilisant le code urlen de php.

$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 . '"');
}

Résumé : ce qui précède est l'intégralité du contenu de. cet article. J'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Explication détaillée des principes et exemples de fonctionnement en chaîne en PHP

Comment utiliser PHP pour accéder à l'instantané d'Alipay fonction de paiement

Méthode d'implémentation PHP de manipulation de la base de données mysqli

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn