Lire fichier csv [Résolu]

Signaler
Messages postés
91
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
18 mai 2010
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonjour, je reviens vous voir pour un problème avec un fichier csv. je travaille en ce moment sur un système d'importation.

J'arrive biensur a apporter le fichier, mais n'arrive pas a le lire.


voila mon code source :


         $h= fopen ($file, "r");

        $cpt=0;

        while($rep=fgetcsv($h,filesize($file),''))

        {

            $ligne[$cpt]=$rep[0];

            $cpt++;

        }

        fclose($h);

        //on charge les lignes de la table

        for($i=0;$i<$cpt;$i++)

        {

            $tab[$i]=array();

            $tab[$i]=split(";",$ligne[$i]);

        }


je n'arrive jamais a rentrer dans la première boucle (while)

et voici mon fichier .csv :


CIVILITE;NOM;PRENOM;VIP;TELEPHONE;FAX;PORTABLE;MAIL;

;DUPOND;Mauricette;Oui;05XXXXXXXX;03XXXXXXXXX;06XXXXXXXX;


Est-ce-que quelqu'un pourrait m'aider ?

       
A voir également:

8 réponses

Messages postés
91
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
18 mai 2010

Voici la solution a mon problème :
       $file="C:/txt.csv";
        $h = fopen ($file, "r") or die("Cannot open $file");
        $cpt=0;
        while($rep=fgetcsv($h,filesize($file)))
        {
            $ligne[$cpt]=$rep[0];
            $cpt++;
        }
        fclose($h);
        $caract_remplace=";";
        $caract_place=",";
        $coma=0;
        //on charge les lignes de la table
        for($i=0;$i<$cpt;$i++)
        {
            $tab[$i]=array();
            $tab[$i]=split(";",$ligne[$i]);
        }
       
        echo$tab[0][0];
        echo$tab[0][1];
Messages postés
19
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
3 mars 2009

Salut,

c'est peut-être là : while($rep==fgetcsv($h,filesize($file),''))

essai déjà ca.
Messages postés
91
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
18 mai 2010

Merci d'avoir répondu, mais sa ne change pas mon problème, au contraire, cela fait une boucle de la mort, .
soit mon problème se situe qur le while :   while($rep==fgetcsv($h,filesize($file),''))
soit c'est un problème dans mon csv ^^.
Messages postés
91
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
18 mai 2010

je pense que j'ai cerner mon problème. il n'arrive pas a ouvrir le fichier !!!

voici ma ligne : $h = fopen ($file, "r") or die("Cannot open $file");

et voila la reponse : Cannot open contact.csv !!!!
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
J'avais fait ça ya quelques temps... si ça peut t'aider a factoriser

http://www.codyx.org/snippet_lire-fichier-csv_469.aspx

--------------------------------------------------------------------------------------------------
         Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
91
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
18 mai 2010

Merci de ton coup de main mais je peut pas utiliser ta méthode puisque je travail en php 4.0 c'est un petit problème.
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Je revois le code est ce n'est pas du php5 me semble...
c'est juste une fonction tirée d'une de mes classe (qui elle était en php5)
Essaye ça devrait fonctionner (attention le debug est actif)
--------------------------------------------------------------------------------------------------
         Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

<?php
$aLines = file($sFile);
foreach($aLines as $sLine) {
    $aCols = explode(';', $sLine);
    echo'',print_r($aCols, true),'

';
}
?>