Maison > Article > développement back-end > PHP génère un fichier CSV avec des caractères tronqués sous Mac
Cet article présente principalement php pour générer du code csv tronqué sous mac. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
<?php $file_name = date('Ymd', time()) . '.csv'; //设置文件名 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename='.$file_name); header('Cache-Control: max-age=0'); $fp = fopen('php://output', 'a'); $row = [ 'name' => '测试', 'email' => 111111, 'mobile' => 22222, 'weixinid' => '微信号', ]; fwrite($fp,"\xEF\xBB\xBF"); fputcsv($fp, $row);
Solution au problème tronqué du fichier csv exporté par php
Avant de parler de cette question, parlons d'abord de ce qu'est un fichier CSV ? La valeur du séparateur par virgule (valeur séparée par des virgules) l'est également. Il existe des fichiers intermédiaires souvent utilisés pour la conversion de données, tels que l'exportation de données de Mysql vers CSV et l'importation de CSV dans SqlServer. Utilisez un script PHP sous Linux pour exporter les données de la table de la base de données Mysql vers csv selon les conditions. Utilisez l'encodage utf-8 pour exporter le fichier CSV. Après ouverture, le contenu chinois devient tronqué (les fichiers CSV sous Windows sont associés à Microsoft Excel). par défaut). Utilisez Notepad++ ou Word s'ouvre normalement, mais la mise en page est désordonnée. Raison : BOM est en difficulté, Microsoft est en difficulté.
Qu'est-ce que la nomenclature ? La marque d'ordre d'octet (marque d'ordre de bits) l'est également.
Afin de reconnaître les fichiers Unicode, Microsoft recommande que tous les fichiers Unicode commencent par le caractère ZERO WIDTH NOBREAK SPACE. Cela sert de « signature » ou de « marque d'ordre d'octet (BOM) » pour identifier l'encodage et l'ordre d'octet (gros-boutiste ou petit-boutiste) utilisés dans le fichier. La correspondance spécifique est indiquée dans le tableau ci-dessous.
Formulaire de codage d'octets
00 00 FE FF | UTF-32, big-endian |
FF FE 00 00 | UTF-32, little-endian |
FE FF | UTF-16, big-endian |
FF FE | UTF-16, little-endian |
EF BB BF | UTF-8 |
La nomenclature n'est pas utilisée dans les systèmes de type Unix car elle détruira les conventions de syntaxe ASCII existantes pour les fichiers.
Remarque : lors de l'écriture du fichier csv, assurez-vous que le code source php est utf-8, n'a pas de nomenclature et ne produit rien.
PHP génère une classe RequestID unique
Un exemple détaillé de la façon dont PHP génère une table de fichier de suffixe .csv
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!