IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Encodage lors d'un export en csv


Sujet :

Langage PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Encodage lors d'un export en csv
    Bonjour,

    j'ai un problème d'encodage des accents (apparemment) lors de la création d'un csv.

    Dans ma DB j'ai par exemple "Maîtrise" et "Maise " sur le csv.

    Merci d'avance de votre aide

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    $dbtable=null;
    include("inc/conf.inc.php");
    if (isset($_GET['table']) && $_GET['table'] != "")
    	$dbtable=$_GET['table'];
    if ($dbtable == "tb_donnees_gpec_grid")
    	$where="WHERE agent='".$_GET['agent']."'";
    else 
    	$where="";
     
    function decode_entities($text) {
        $text= html_entity_decode($text,ENT_QUOTES,"UTF-8"); #NOTE: UTF-8 does not work!
        $text= preg_replace('/&#(\d+);/me',"chr(\\1)",$text); #decimal notation
        $text= preg_replace('/&#x([a-f0-9]+);/mei',"chr(0x\\1)",$text);  #hex notation
        return $text;
    }
     
    // Connexion à la base de données
     
    $connexion = new mysqli($hostname, $username, $password, $database) or die ("Connexion Impossible");
     
    //Requete SQL
    $query = "SELECT * FROM ".$dbtable." ".$where."";
    $result = $connexion->query($query);
     
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=".$dbtable."-".date('Ymd-H:i:s').".csv");
     
    $data="";
    $case="";
     
    // Entêtes des colones dans le fichier Excel
    $data=$result->fetch_fields();fields
     
    foreach ($data as $val) {
       printf($val->name." ;");
        }
    print("\n"); 
     
    //Les resultats de la requette
    $i=0;
    while($row = $result->fetch_row()) {
    	$excel = '';
    	for($j=0; $j < $result->field_count; $j++)
    	{
    		if(!isset($row[$j]))
    			$excel .= "NULL ;";
    		else
    			$excel .= "$row[$j] ;";
    	}
    	$excel = preg_replace("/\r\n|\n\r|\n|\r/", ' ', $excel);
    	print(trim(decode_entities($excel)))."\t\n";
     
    }
    print("\n"); 
    exit;
    Dernière modification par Bovino ; 05/09/2013 à 10h47. Motif: Suppression de la mention "Problème" inutile dans le titre !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment ne pas perdre les "0" lors d'un export en CSV
    Par olivier131 dans le forum Excel
    Réponses: 8
    Dernier message: 02/03/2017, 12h54
  2. Format lors de l'exportation en .csv
    Par steps5ive dans le forum Cognos
    Réponses: 0
    Dernier message: 13/09/2013, 19h29
  3. [DisplayTag] Modifier le séparateur lors de l'export CSV
    Par ahlem83 dans le forum Taglibs
    Réponses: 2
    Dernier message: 21/10/2011, 16h18
  4. Probleme de lenteur lors de l'export CSV
    Par kodo dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2007, 11h53
  5. pb encodage lors export XML
    Par gemogof dans le forum ASP
    Réponses: 6
    Dernier message: 26/03/2005, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo