Blog ENI : Toute la veille numérique !
Jusqu'à ce soir ! : -25€ dès 75€ sur les livres en ligne, vidéos... code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. PHP et JavaScript
  3. Les fichiers
Extrait - PHP et JavaScript Dynamisez vos sites et applications web (avec exercices et corrigés)
Extraits du livre
PHP et JavaScript Dynamisez vos sites et applications web (avec exercices et corrigés) Revenir à la page d'achat du livre

Les fichiers

Introduction

Les fichiers constituent un moyen d’échanger ou de stocker des informations. On verra dans un prochain chapitre qu’il existe aussi les bases de données qui permettent de stocker des informations sur le serveur.

Les fichiers sont simples d’utilisation et facilement accessibles, mais pour cela il faut tout d’abord s’assurer que l’on a l’autorisations d’écrire sur le serveur et les permissions requises pour modifier un fichier (pour modifier les droits sur un fichier ou un dossier, il faudra utiliser la fonction CHMOD).

Ouverture d’un fichier

La première action à réaliser avant de pouvoir lire ou écrire dans un fichier est de l’ouvrir.

 Pour cela, utilisez la fonction fopen comme ceci, en supposant que le fichier monfichier.txt existe :


<?php 
  $fichier = fopen ('monfichier.txt', 'r+');  
?>
 

La fonction fopen accepte deux paramètres, le premier est le nom du fichier que l’on veut exploiter, le second correspond au mode d’ouverture du fichier, dont voici ci-dessous les possibilités :

Mode

Description

r

Ouverture du fichier en lecture seule (pas de possibilité d’écriture), le pointeur est placé en début de fichier.

r+

Ouverture du fichier en lecture et écriture, le pointeur est placé en début de fichier.

a

Ouverture du fichier en écriture seule, le pointeur est placé en fin de fichier. Si le fichier n’existe pas, il sera créé (si les permissions sur le dossier le permettent).

a+

Ouverture du fichier en lecture et écriture, le pointeur est placé en fin de fichier. Si le fichier n’existe pas, il sera créé (si les permissions sur le dossier le permettent).

w

Ouverture du fichier en écriture seule, le pointeur est placé en début de fichier. Si le fichier n’existe pas, il sera créé (si les permissions sur le dossier...

Fermeture d’un fichier

Une fois vos actions sur le fichier terminées, il faut fermer celui-ci à l’aide de la fonction fclose de la façon suivante :


<?php 
  fclose($fichier);  
?>
 

On passe simplement à la fonction fclose le nom de la variable du fichier que l’on veut fermer.

Lecture du contenu d’un fichier

Il y a deux fonctions essentielles pour la lecture, il s’agit de fgetc et fgets.

1. Lecture avec fgetc()

La fonction fgetc() permet de lire le contenu du fichier caractère par caractère. Son utilisation est donc assez peu fréquente et assez lourde également, car il faudra une boucle pour parcourir l’ensemble du fichier.

Supposez que vous ayez le fichier texte.txt contenant les lignes suivantes :

texte.txt

Le PHP est un langage informatique utilisé sur l’Internet.

Le terme PHP est un acronyme récursif de "PHP : Hypertext Preprocessor".

Pour lire le contenu de ce fichier avec la fonction fgetc, on pourra procéder ainsi :


<?php 
  $fichier=fopen('texte.txt','r'); 
  If (!$fichier) {         //on vérifie qu'on n'a pas false en retour 
de fopen 
    die("Impossible d'ouvrir le fichier texte.txt"); 
  } 
  while (false !== ($char = fgetc($fichier))) { 
    echo "$char\n"; 
  } 
  fclose($fichier); 
?>  
 

Affichera :

images/12RI01.png

Le résultat obtenu n’est pas vraiment celui attendu, on remarquera que le saut de ligne n’est pas interprété, cette fonction n’est donc pas très...

Écriture dans un fichier

1. Écriture avec fputs()

Cette fonction permet d’écrire une ligne à l’endroit où est placé le curseur :


<?php 
  $fichier=fopen('texte2.txt','w'); 
  if ($fichier) { 
    fputs ($fichier, "Ceci est un test d'ecriture\r\n"); 
    fputs ($fichier, "dans un fichier texte.\n"); 
  } 
  fclose($fichier); 
  echo "Le fichier a ete cree avec le texte"; 
?>
 

 Positionnez-vous dans le répertoire courant, vous trouverez le fichier texte2.txt avec les deux lignes insérées.

\r\n insère un caractère de retour à la ligne, c’est l’équivalent du <br> en HTML.

Notez que pour ajouter du texte en fin de fichier, il faudra l’ouvrir avec l’attribut ’a’ (append) dans la fonction fopen(), cela positionnera le curseur en fin de fichier.

2. Écriture avec fwrite()

Cette fonction est similaire à fputs() et prend les mêmes paramètres :


    fwrite ($fichier, "Ceci est un test d'ecriture\r\n");
 

3. Écriture avec file_put_contents()

Cette fonction permet d’écrire le contenu d’une variable. Dans le cas où le fichier existe déjà, il sera écrasé :


<?php ...

Autres fonctions utiles sur les fichiers

1. Fseek()

Cette fonction permet de positionner le curseur à un endroit précis dans le fichier. En fonction de la méthode d’ouverture du fichier (r, w, a...), votre curseur peut être positionné en début ou fin de fichier. Il faut indiquer à fseek() la position que l’on désire (en octets) :


fseek($fichier,0); //positionnera le curseur en début de fichier.
 

2. Ftell()

Cette fonction retourne la position du curseur :


$position=ftell($fichier);
 

3. Rewind()

Pour replacer le curseur en début de fichier, vous pouvez également utiliser la fonction rewind() :


rewind($fichier);
 

4. File_exists()

Comme son nom l’indique, vous pourrez tester l’existence d’un fichier à l’aide de cette fonction, elle retourne vrai (true) si le fichier existe et faux (false) dans le cas contraire :


if file_exists($fichier) {....
 

5. Unlink()

Cette fonction permet de supprimer un fichier, prenez garde toutefois à tester l’existence du fichier à supprimer avant de l’utiliser :


if file_exists($fichier) {.... 
  unlink($fichier); 
}
 

6. Rename()

Utilisez rename() pour renommer un fichier, le premier paramètre est le nom du fichier, le second est le nouveau nom que vous voulez lui attribuer :


rename($fichier, $nouveau_nom_fichier);