Maison > développement back-end > Problème PHP > Comment résoudre le problème des caractères tronqués lors de l'importation de fichiers CSV en PHP

Comment résoudre le problème des caractères tronqués lors de l'importation de fichiers CSV en PHP

PHPz
Libérer: 2023-03-29 10:32:40
original
1151 Les gens l'ont consulté

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);
    }
}
Copier après la connexion

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);
    }
}
Copier après la connexion

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);
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal