javascript, javascripts, js, jscript, scripts, script, html, dhtml, dynamic, cookies, menu, frames, formulaire, source, code, gratuit, exemple, developper, html, php4, php3, php, mysql, liens, php2, forum, livre d'or, pages, web, dynamiques, programmation, webmasters, webmestres, tutorial, tutoriel, annuaires, espace, membres, banniéres, caddies, chats, compteurs, formulaires, forums, gestion, documentations, news, mailing, list, newsletter, moteurs, recherche, sondages, votes, statistiques, autres, agendas, calendriers, mail, annonces, audio, outils, réseaux, graphique, recommandation, site, sécurité, portail, creation, actualité, moteur de recherche, moteur, trucs, astuces, services, flash, action script, actionscript Tutoriaux : Php/MySQL
Script Masters : Javascript, Php, Mysql, html pour Webmasters!
 
    Script Masters
 
    Espace membre
 
    Langages
 
    Autres ressources
 
    Emploi avec Jobintree
 
    Ressources graphiques
 
    Recherche
 
    Kit graphique
 
    Liens
 
    Statistiques


 


Télécharger cet article au format PDF


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.

 

Script :
<?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();
}

?>

 

Contenu de fichier.txt :
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+.

 

Script :
<?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.

 

Script :
<?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.

 

- Un problème? Posez vos questions sur le forum Php/MySQL!
- Ce tutorial a été consulté 17211 fois


Script Masters © Ce texte est la propriété de son auteur.
Toute reproduction est interdite.

 




 
 
Fabien Daniel - © 2001-2009 | Hebergement : OVH | CNIL : 796128