Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème fgetcsv

Sujet résolu
    22 mars 2019 à 16:24:01

    Bonjour tout le monde,

    J'utilise la fonction fgetcsv pour lire un fichier CSV (jusque là, rien de bien sorcier), elle me retourne bien les valeurs des champs délimités par mon paramètre ( ; ) sauf que ces valeurs sont entourés de " (double quotes). Normalement l'enclosure est par défaut '"' donc je ne comprends pas bien. Ça m'aiderait beaucoup de les enlever, est-ce que quelqu'un a une idée ?

    Respectueusement

    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2019 à 13:24:20

      Salut

      Possible de voir ton code ? 

      Merci d'avance

      • Partager sur Facebook
      • Partager sur Twitter
        25 mars 2019 à 9:16:58

        Salut, voici le début de mon code, je ne pense pas que vous ayez besoin de la suite (mais si besoin, dîtes-le moi)

        <?php
        require_once("./menu.php");
        $menu = affiche_menu();
        ?>
        
        <head>
            <meta charset="utf-8" />
            <title>Import xxxxx</title>
            <link href="style.css" type="text/css" rel="stylesheet" />
        </head>
        
        <?php
        echo $menu;
        
        //header('Content-type: text/html; charset=iso-8859-1'); // Accents
        
        function listeDossier($dossier) // liste un dossier de façon récursive
        {
        	if (is_dir($dossier)) // vérifie que le paramètre précisé dans la fonction est un dossier
            {
                if($dossierOuvert=opendir($dossier)) // ouverture ?
                {
                    echo "<ul>";
                    while(($fichier=readdir($dossierOuvert))!== false)
                    {
                        if ($fichier==".." || $fichier=="." || $fichier=="index.php")
                        {
                            continue;
                        }
                        else
                        {
                             
                            if(is_dir("$dossier/$fichier"))
                            {
                                echo "<li>$fichier</li>";
                                listeDossier("$dossier/$fichier");
                            }
                            else
                            {
                                echo "<li><a href='$dossier/$fichier'>$fichier</a></li>";
                                
        /*--------------------------------------------------------------------------------------------------------------------------------*/
                                //On détermine la date en fonction du nom du fichier (plus flexible avec un switch)
                                
                                /*switch ($fichier[0]) {
                                    case 'v':
                                        //Date format récupéré
                                        $datefichier = substr($fichier, -20, -4);
                                        //Découpage
                                        list( $jour, $mois, $annee, $heure, $min) = sscanf( $datefichier, "%d.%d.%d.%d.%d" );
                                        $sec = '00';
                                        break;
        
                                    case 'E':
                                        //Date format récupéré
                                        $datefichier = substr($fichier, -23, -4);
                                        //Découpage
                                        list( $jour, $mois, $annee, $heure, $min, $sec) = sscanf( $datefichier, "%d.%d.%d.%d.%d.%d" );
                                        break;
                                    
                                    default:
                                        # code...
                                        break;
                                }*/
                                
                                if ($fichier[0] == 'v') {
                                    //Date format récupéré
                                    $datefichier = substr($fichier, -20, -4);
                                    //Découpage
                                    list( $jour, $mois, $annee, $heure, $min) = sscanf( $datefichier, "%d.%d.%d.%d.%d" );
                                    $sec = '00';
                                }
                                
                                elseif ($fichier[0] == 'E') {
                                    //Date format récupéré
                                    $datefichier = substr($fichier, -23, -4);
                                    //Découpage
                                    list( $jour, $mois, $annee, $heure, $min, $sec) = sscanf( $datefichier, "%d.%d.%d.%d.%d.%d" );
                                }
                                
                                else {
                                    echo "erreur date";
                                }
         
                                $datefichier2 = $annee .'-'. $mois .'-'. $jour .' '. $heure .':'. $min .':' . $sec;
                                echo $datefichier2 . "<br />";
        
        
        /*--------------------------------------------------------------------------------------------------------------------------------*/
        
        
                                /*$pdoOptions[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;*/
                                require_once("./connect.php");
        
        
                                //Différentes requêtes pour récupérer les informations de la base de données
                                $sql1 = $bdd->prepare('SELECT id_vm FROM vm WHERE nom = :nom ;'); // On recherche le nom
                                $sql2 = $bdd->prepare('INSERT INTO vm(nom) VALUES(:nom) ;'); // On le crée et on récupère son id
                                $sql3 = $bdd->prepare('INSERT INTO mesure (date_heure, valeur, id_vm, id_indicateur) VALUES( :datefichier2, :valeur, :id_vm, :id_indicateur) ;');
        
                                //Affichage des valeurs
                                
                                /* Ouvertre du fichier csv en mode lecture */
                                $f = fopen($dossier. '/' . $fichier, 'r+') ;
        
                                /* Contrôle de l'ouverture */
                                if(is_resource($f)) {
                                    
                                    /* lis la première ligne dans le vide */
                                    fgetcsv($f, 4096, ";", '"');
        
                                    /* Boucle sur chaque ligne (Teste la fin du fichier) */
                                    while(! feof($f)) { 
        
                                        $d = fgetcsv($f, 4096, ";", '"');
        
                                        print_r(fgetcsv($f, 4096, ";", '"', "\\"));
                                        echo "<br />";



        • Partager sur Facebook
        • Partager sur Twitter

        Problème fgetcsv

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown