|
Untitled Document
 |
Utilisation des fichiers |

|
Tutorial écrit par : Daniel Fabien - Script
Masters
|
|
Introduction |
|
|
Il n'y a pas de secret, pour bien comprendre l'utilisation des fichiers
il faut des exemples. Donc dans ce tutorial pas beaucoup de théorie,
mais des portions de code pour manipuler en toute simplicité vos
fichiers.
|
|
Lecture d'un fichier |
|
|
Voici une portion de code qui lit vos fichiers ligne par ligne. Toutes
les fonctions utilisées en exemple sont décrites à
la fin de ce tutorial.
| <?php
$fichier = "fichier.txt"; // Nom de votre fichier
if($fp = fopen($fichier,"r")){ // Ouverture du fichier
en lecture
$ligne=1; // Initialisation du compteur
while (!feof($fp)) { // Tant que non fin du fichier
echo "Ligne n°".$ligne; // Ecriture à l'écran
echo " : ".fgets($fp,4000)."<br>";
$ligne++; // Incrémentation du compteur
}
fclose($fp); // Fermeture du fichier
}else{ // Echec à l'ouverture
echo "Erreur : impossible d'ouvrir ".$fichier;
exit();
}
?>
|
Première ligne
Seconde ligne |
| Sortie à l'écran après execution du script
: |
Ligne n°1 : Première ligne
Ligne n°2 : Seconde ligne |
J'attire votre attention sur le fait que le fichier est ouvert en lecture
seule. Pour cela, on utilise le mode " r " dans la fonction
fopen(). Plus de détails sur les modes et les fonctions à
la fin de ce tutorial.
|
 |
Ecriture d'un fichier |
| |
De la même façon, il est possible d'écrire des données
dans un fichier. Dans cet exemple, on ouvre le fichier en lecture et en
écriture en supprimant son éventuel contenu. Et si il n'existe
pas, il est créé. Tout cela est géré par le
mode d'ouverture : w+.
| <?php
$fichier = "fichier.txt"; // Nom de votre fichier
$nom = "Fabien Daniel"; // Initialisation du nom
if($fp = fopen($fichier,"w+")){ // Ouverture du fichier
fwrite($fp, "Bonjour $nom"); // On écrit Bonjour
Fabien Daniel
fwrite($fp, "\n"); // On passe une ligne
fwrite($fp, "Seconde ligne"); // On écrit Seconde
ligne
fclose($fp); // Fermeture du fichier
}else{ // Echec à l'ouverture
echo "Erreur : impossible d'ouvrir ".$fichier;
exit();
}
?>
|
| Contenu de fichier.txt après exéctution du script: |
Bonjour Fabien Daniel
Seconde ligne |
Vous l'aurez compris, le contenu reste toujours le même dans la
mesure où le fichier est effacé à chaque exécution
du script. Vous pouvez cependant utilisez des variables dans l'écriture
de ces fichiers (par exemple, supprimer l'initialisation du nom et le
passer par l'url : script.php?nom=renaud)
Enfin, vous pouvez utilisé le script vu dans le premier point
pour afficher le contenu de ce fichier.
|
 |
Ajout dans un fichier |
| |
Enfin, il peut-être utile de rajouter quelques informations à
la fin de votre fichier. On ouvre alors le fichier an mode ajout. Php
place alors le pointeur en toute fin de fichier. C'est-à-dire qu'il
conserve le contenu et permet l'écriture de nouvelle chaîne
de caractère en toute fin.
| <?php
$fichier = "fichier.txt"; // Nom de votre fichier
$nom = "Corentin Pierre-Jean";
if($fp = fopen($fichier,"a")){ // Ouverture du fichier
en ajout
fwrite($fp, "\n"); // On passe une ligne
fwrite($fp, "Bonjour $nom"); // On écrit Bonjour
Corentin Pierre-Jean
fwrite($fp, "\n"); // On passe une ligne
fwrite($fp, "Fin"); // On écrit Fin
fclose($fp); // Fermeture du fichier
}else{ // Echec à l'ouverture
echo "Erreur : impossible d'ouvrir ".$fichier;
exit();
}
?>
|
Si on utilise le fichier créé à l'exemple précédent,
on obtient alors le contenu suivant .
| Contenu de fichier.txt après exéctution du script: |
Bonjour Fabien Daniel
Seconde ligne
Bonjour Corentin Pierre-Jean
Fin |
Il est utile de préciser qu'a chaque exécution du script,
les deux dernières lignes seront ajoutées une nouvelle fois.
Attention donc à ne pas produire des fichiers trop volumineux si
le script est exécuté très souvent.
|
 |
Fonctions et notions importantes |
| |
Voici un récapitulatif des fonctions utiles pour manipuler vos
fichiers. Cette liste n'est pas exhaustive, mais permet de réaliser
pas mal de manipulation. La variable $fp renvoie toujours un identificateur
de fichier obtenu lors de l'utilisation de fopen()
| Opérations élémentaires sur les fichiers: |
Fonction |
Description |
| copy($source,$dest) |
Copie un fichier |
| fclose($fp) |
Ferme un fichier |
| feof($fp) |
Verifie si pointeur en fin de fichier |
| fgetc($fp) |
Lit un caractère d'un fichier |
| fgetcsv($fp,$len,"|") |
Lit une ligne et scinde la chaine dans un tableau |
| fgets($fp,$len) |
Lit une ligne d'un fichier |
| fgetss($fp,$len) |
Lit une ligne et supprime le html |
| file("filename") |
Lit entierement un fichier dans un tableau |
| $fp=fopen("file","mode") |
Ouvre un fichier et retourne identificateur |
| fpassthru($fp) |
Retourne la totlité d'un fichier |
| fputs($fp,"chaine") |
Ecrit chaine dans un fichier |
| fwrite($fp,"chaine") |
Idem que fputs |
| readfile("filename") |
Lit un fichier et retourne son contenu |
| rename("old","new") |
Renome un fichier |
| unlink("filename") |
Efface un fichier |
Et pour finir le tableau récapitulatif des modes d'ouvertures
de vos fichiers.
| Modes d'ouverture de fichier : |
|
Mode |
Description |
| r |
Ouverture en lecture seule |
| r+ |
Ouverture en lecture/écriture |
| w |
Ouverture en écriture seule |
| w+ |
Idem que w et supprime le contenu. Fichier créé si
inexistant |
| a |
Ecriture seule. Pointeur en fin de fichier. Fichier créé
si inexistant |
| a+ |
Idem que a mais lecteur/écriture. |
Faites précédé le mode d'un "b" si vous
traitez un fichier binaire (ex : "bw+").
|

|
Conclusion |
| |
Comme vous avez pu le constater, les fichiers peuvent s'avérer
très utiles pour stocker des données sans pour autant faire
appel à une base de donnée. Ceci est encore plus vrai car
Php gère très efficacement l'accès au système
de fichiers grâce notamment à un grand nombre de fonctions.
|
|
|
|