Pendant le processus d'importation CSV en php, vous rencontrerez parfois le problème des caractères tronqués dans le fichier CSV importé, entraînant des erreurs dans les données importées. Alors, comment résoudre le problème des caractères tronqués dans l'importation CSV ? Voici quelques solutions.
1. Définir le format d'encodage du fichier CSV
Tout d'abord, le format d'encodage du fichier CSV importé doit être cohérent avec le format d'encodage du fichier PHP. Vous pouvez sélectionner le format d'encodage approprié à enregistrer en sélectionnant « Enregistrer sous » dans Excel. Vous pouvez également utiliser un éditeur de texte tel que Notepad++ pour ouvrir le fichier CSV, convertir le format d'encodage en UTF-8 ou GBK et enregistrer le fichier.
Par exemple, pour importer un fichier CSV encodé en GBK dans un fichier PHP encodé en UTF-8, vous pouvez ajouter le contenu suivant dans le code PHP :
if ($_FILES['file']['name']) { $filename = $_FILES['file']['name']; //获取文件名 if ($filename) { $type = $_FILES['file']['type']; $tmp_name = $_FILES['file']['tmp_name']; $size = $_FILES['file']['size']; $fp = fopen($tmp_name, "r"); //将文件读取成字符串 $content = fread($fp, $size); $content = iconv("GBK", "UTF-8", $content); //将GBK编码转换为UTF-8编码 fclose($fp); } }
2 Utilisez la fonction fgetcsv
Utilisez la fonction fgetcsv pour convertir. le contenu du fichier CSV importé Lisez-le et traitez-le en conséquence. La fonction fgetcsv lira le contenu d'une ligne de fichier CSV et le stockera dans un tableau.
Par exemple :
if ($_FILES['file']['name']) { $filename = $_FILES['file']['name']; //获取文件名 if ($filename) { $type = $_FILES['file']['type']; $tmp_name = $_FILES['file']['tmp_name']; $size = $_FILES['file']['size']; $fp = fopen($tmp_name, "r"); //将文件读取成字符串 //使用fgetcsv读取csv文件 while($line = fgetcsv($fp)) { if($line!=null){//如果读到的行不为空,进行以下操作 $user[$j][0] = iconv("GBK", "UTF-8",$line[0]);//将从csv文件中读道的转换成utf-8 $user[$j][1] = iconv("GBK", "UTF-8",$line[1]); $j++; } } fclose($fp); } }
3. Utilisez la fonction mb_convert_encoding
Utilisez la fonction mb_convert_encoding pour convertir le format d'encodage du fichier CSV en UTF-8.
Par exemple :
if ($_FILES['file']['name']) { $filename = $_FILES['file']['name']; //获取文件名 if ($filename) { $type = $_FILES['file']['type']; $tmp_name = $_FILES['file']['tmp_name']; $size = $_FILES['file']['size']; $fp = fopen($tmp_name, "r"); //将文件读取成字符串 while($line = fgets($fp)){ $buffer[] = mb_convert_encoding($line, 'UTF-8', 'GBK');//将csv文件内容的编码格式转化为UTF-8 } fclose($fp); } }
Résumé :
Il existe plusieurs méthodes ci-dessus pour résoudre le problème des caractères tronqués importés dans PHP CSV. Différentes méthodes ont une certaine applicabilité à différents caractères tronqués. Bien entendu, vous devez également prêter attention à d'autres problèmes lors du processus d'importation de fichiers CSV, tels que les séparateurs de lignes, les séparateurs de colonnes, etc., pour garantir que les données importées sont complètes et correctes.
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!