logo Pierre AULAS
Le jour se lève - Pierre Aulas
 Parcours  |   Réalisations  |   Cours  |   Chroniques  |   Divers
Un musée plein de tableaux
Le jour se lève

Le jour se lève

Ce exercice a pour but d'apprendre à manipuler un fichier texte en php.

Ressource

Pour cet exercice, vous utiliserez le fichier .csv suivant: soleil.csv (sans le retoucher). Regardez bien sa structure avant de commencer à réaliser l'exercice.

Exemple de mise en œuvre

Pour le reste, il s'agit d'écrire le code nécessaire pour réaliser l'interface qui suit :

Sélectionnez une date :

Haut de page

Correction

Cette première partie de code sert à stocker le contenu du fichier .csv dans le tableau $tableau.

<?php

define("SEPARATEUR",","); // Je fais de mon séparateur une constante,
// simplement histoire de se rappeler comment on déclare une constante en php
$tableau = file("doc/cou_php_exSoleil.csv"); // Je place le contenu de mon fichier dans une variable tableau
// Chaque ligne du fichier se trouve dans une case du tableau

// Je parcoure chaque ligne de mon tableau et je le découpe en autant d'éléments
// qu'il y a de lignes séparées par des virgules
for ($i=0;$i<count($tableau);$i++)
// La fonction explode renvoie les éléments d'une ligne séparés par des virgules
// sous forme d'un tableau ou chaque élément entre virgule est placé dans une
// case du tableau
  $tableau[$i] = explode(SEPARATEUR, $tableau[$i]);
?>

Désormais le contenu de mon fichier est stocké dans un tableau de tableau du genre :

$tableau[0] = array(2008-01-01, 8:44, 17:04);
$tableau[1] = array(2008-01-02, 8:44, 17:05);
$tableau[2] = array(2008-01-03, 8:44, 17:06);
etc.

Dans un second temps on s'occupera d'afficher le menu déroulant, lequel contient la liste des dates.

Soyons malin : à chaque date, associez le numéro de la ligne sur laquelle elle se trouve dans le tableau. Cela vous facilitera la tâche lorsque vous récupérerez le contenu correspondant à la date séléctionnée (lequel contenu est situé sur la même ligne) :

2008-02-01, 8:21, 17:47

  <FORM method="get" action="">
    Sélectionnez une date:<BR>
    <SELECT name="jour" size="1">
      <?php       
      for ($i=0;$i<count($tableau);$i++)
      {  
      if (isset($_GET['jour']) && $i == $_GET['jour'])
        print "<OPTION value=\"$i\" SELECTED>".$tableau[$i][0]."</OPTION>";
      else
        print "<OPTION value=\"$i\">".$tableau[$i][0]."</OPTION>";
      }
      ?>
    </SELECT>
    <INPUT type="submit" value="Afficher les heures de lever et de coucher du soleil">
  </FORM>

Il ne reste plus qu'à afficher le lever et le coucher correspondant si une date a été sélectionnée :

<?php
if (isset($_GET['jour']))
{
  print "Lever à : ".$tableau[$_GET['jour']][1]."<BR>";
  print "Coucher à : ".$tableau[$_GET['jour']][2]."";
}
?>

Haut de page
Plan du site  |  Mentions légales  |  Crédits  |  Aide