Intégrer une valeur d'un CSV dans une page PHP

Goingup
Invité n'ayant pas de compte PHPfrance

28 déc. 2006, 15:44

Bonjour à tous,
Je cherche le moyen de copier la valeur d'une "cellule" Excel (exporter en .CSV) sur une page...

Voici un exemple pour être plus précis :

--> Mon CSV:
nb habitants;pays
63;France
300;usa
...

Ainsi sur ma page, je voudrais appeler le nombre d'habitants correspondant au nom du pays. Dès lors que je metterais mon CSV à jour, toutes les valeurs copiées sur les pages seront également MAJ...

Merci d'avance!

HD
Mammouth du PHP | 1181 Messages

28 déc. 2006, 16:09

 /* On ouvre le fichier à importer en lecture seulement */
 $fichier = 'tonfichier.csv';
 if (file_exists($fichier))
     $fp = fopen("$fichier", "r"); 
 else
     { /* le fichier n'existe pas */
       echo "Fichier introuvable !<br>Importation stoppée.";
       exit();
     }
      
    while (!feof($fp)) /* Et Hop on importe */
    { /* Tant qu'on n'atteint pas la fin du fichier */ 
       $ligne = fgets($fp,4096); /* On lit une ligne */  

       /* On récupère les champs séparés par ; dans liste*/
       $liste = explode( ";",$ligne);  
    
       /* On assigne les variables */ 
       $nbrhabitants = $liste[0]; 
       $pays= $liste[1]; 
   
         print "$nbrhabitants $pays<br>";
     } 
     
     echo "<br>Importation terminée, avec succès."; 
       
     /* Fermeture */ 
     fclose($fp); 
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 déc. 2006, 16:24

Dans un soucis d'optimisation, on pourrais remplacer ces 2 lignes
       $ligne = fgets($fp,4096); /* On lit une ligne */  

/* On récupère les champs séparés par ; dans liste*/
$liste = explode( ";",$ligne);   
Par celle là
$liste = fetgetcsv($fp, 4096);
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Goingup
Invité n'ayant pas de compte PHPfrance

28 déc. 2006, 18:54

C'est presque parfait !

Mais puisse que je veux créer une page par pays (et non un tableau des statistiques des pays), il faudrait que je puisse appeler le "nb d'habitants" du pays que je traite...

Par exemple :

--> france.php
Nbs d'habitant : là j'appele seulement la case "nb d'habitant en France"

--> usa.php
Nbs d'habitant : là j'appele seulement la case "nb d'habitant aux usa"

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 déc. 2006, 11:47

Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.