Previous Up Next
Université Lille 3-Charles de GaulleUFR de Mathématiques Sciences Économiques et Sociales

Chapitre 18  Les fichiers

Un fichier (ou file en anglais, ou document dans le monde Windows) est l'objet qui permet à un système d'exloitation (donc aussi aux programmes qu'il supporte) d'enregister des informations sur le disque dur (ou la disquette).

18.1  Manipulations de base

Pour utiliser des fichiers il faut savoir les écrire et les relire.

18.1.1  Ouverture (et fermeture) d'un fichier

Avant tout accès à un fichier il faut l'ouvrir, ce qui se fait par la fonction « fopen » dont la syntaxe est :
int fopen (string fichier, string mode)
où : Un fichier ouvert par « fopen » sera fermé par « fclose ».

18.1.2  Écrire dans un fichier

Nous n'étudierons que les fichiers de texte. Mais vous trouverez plus d'information sur les fichiers dans l'aide de PHP, par exemple à l'adresse :
http://fr.php.net/manual/fr/html/ref.filesystem.html
Pour écrire dans un fichier de texte il faut utiliser la fonction « fwrite » (ou la fonction « fputs » qui est en tous points identique).

18.1.3  Lire le contenu d'un fichier

Deux solutions radicalement différentes : Il existe d'autres façons de lire les informations rangées dans un fichier mais nous ne les aborderons pas. Comme précédemment vous trouverez plus d'information sur les fichiers dans l'aide de PHP, par exemple à l'adresse :
http://fr.php.net/manual/fr/html/ref.filesystem.html

18.2  Un exemple

Nous allons réaliser un mini-site qui permet d'ajouter une ligne à la fois dans un fichier, tandis qu'une page permettra d'afficher le contenu du fichier.
  1. Formulaire : fichier-01.php
      <HTML><BODY>
      <FORM ACTION="fichier-02.php">
      Saisie : <INPUT NAME="ligne">
      <INPUT TYPE="submit">
      </FORM>
      </BODY></HTML>
    
    Il s'agit en fait d'une simple page HTML contenant un formulaire.
  2. Traitement du formulaire (écriture dans le fichier) : fichier-02.php
      <HTML><BODY>
      <?php
      // ouverture du fichier "fichier-04.txt en mode "a" (append=ajout)
      // l'identifiant renvoyé est $fp
      // il sera utilisé pour l'écriture et la fermeture
      $fp = fopen ("fichier-04.txt","a"); 
      // écriture de la valeur reçue (plus une fin de ligne)
      fputs ($fp,$ligne."\n");
      // fermeture du fichier
      fclose ($fp)
      ?>
      Le fichier a été modifié.
      </BODY></HTML>
    
    Attention :
  3. Affichage du contenu du fichier :

    Première solution, avec la fonction file : fichier-03.php
    <HTML><BODY>
      <?php
      $f=file("fichier-04.txt");
      for ($i=0;$i<count($f);$i++) {
        echo $f[$i]."<BR>";
      }
      ?>
      </BODY></HTML>
    
    Deuxième solution, avec la fonction fgets : fichier-04.php
      <HTML><BODY>
      <?php
      $fp = fopen ("fichier-04.txt","r");
      while ($l=fgets($fp,500)) {
        echo $l."<BR>";
      }
      fclose($fp);
    ?>
    </BODY></HTML>
    

18.3  Exercice

Écrire un gestionnaire d'annuaire téléphonique.

Le minimum à atteindre :
  1. Une page (formulaire) qui permet de saisir le nom, le prénom et le numéro de téléphone d'une personne.
  2. L'appui sur la touche d'envoi enregistre les coordonnées dans un fichier.
  3. Une page qui permette de présenter proprement la liste des contacts. Vous avez le choix sur le sens à donner au mot « proprement » : en tableau, en liste, etc. L'important est que ce soit lisible.
  4. On doit pouvoir passer facilement d'une page à l'autre : soit des liens entre les pages, soit une page d'accueil.
Des améliorations possibles, qui ne seront prises en compte que ce qui précède est réalisé :
  1. La liste affichée pourra être mise dans l'ordre alphabétique (voir la fonction « sort »).
  2. On pourra offrir la possibilité de supprimer un contact.
  3. On pourra offrir la possibilité de modifier un contact.
D.Gonzalez (gonzalez@univ-lille3.fr) en date du th , 

Previous Up Next