WIKI LWS - L'hébergeur Web accessible à tous WIKI LWS - L'hébergeur Web accessible à tous

Ceci est une ancienne révision du document !


Lire, écrire des fichiers en PHP

PHP permet de faire beaucoup de choses et entre autre de lire et d'écrire dans des fichiers. Ces fonctions très pratiques vous permettront de conserver des informations.

Ouverture de fichiers:

Pour ouvrir les fichiers, afin d'effectuer des opérations sur ceux-ci, on utilise la fonction fopen() :

fopen(string nom_du_fichier, string mode);

L'argument nom_du_fichier désigne le nom du fichier a ouvrir et l'argument mode désigne le mode d'ouverture (lecture, ajout, écriture..) :

Valeur Opérations permises:

  • a Ouverture du fichier pour : écrire et créer le fichier. L'écriture commence a la fin du fichier
  • a+ Mêmes fonctions que ci-dessus sauf que la lecture est permise.
  • r Ouverture d'un fichier en lecture seule.
  • r+ Mêmes fonctions que ci-dessus sauf qu'il est possible d'écrire dans le fichier. L'écriture commence au début du fichier
  • w Ouverture du fichier en écriture seulement. Création du fichier si celui-ci n'existe pas sauf que les données contenues précédemment sont effacées.
  • w+ Mêmes fonctions sauf qu'il est possible de lire dans le fichier.
Exemple d'ouverture d'un fichier :


if($ouverture = @fopen("fichier.txt", "r"))
{
echo "L'ouverture du fichier est possible car la fonction fopen retourne TRUE";
}
else
{
echo "Ouverture du fichier impossible car fopen retourne FALSE";
}
?>

La fonction fopen() renvoie true si l'ouverture est possible et false si elle ne l'est pas.

Affichage de fichiers:

Pour afficher tout le contenu d'un fichier dans le navigateur, on utilise la fonction fpassthru() :

fpassthru(string pointeur);
Exemple d'envoi d'un fichier essai.txt au navigateur :

$fichier = fopen("essai.txt","r");
fpassthru($fichier);
?>//

Lecture de fichiers:

Pour n'afficher qu'une partie d'un fichier, il existe plusieurs fonctions différentes :

  • La fonction fgetc() qui, elle, permet d'extraire le premier caractère du fichier :
fgetc(string pointeur);
Exemple :
 
$fichier = fopen("essai.txt","r");
$premier = fgetc($fichier);
echo "Premier Caractère : " . $premier;
fclose($fichier);
?>
  • La fonction fgets() permet, elle, d'extraire une chaîne d'une certaine longueur. Il faut aussi savoir que la fonction extrait la chaîne de la longueur précise définie en argument, plus un caractère et que la fonction s'arrête aux sauts de lignes :
fgets(string pointeur, string longueur);
Exemple : 


$fichier = fopen("essai.txt","r");
$premier = fgets($fichier, 10);
echo "Dix Premier Caractères : " . $premier;
fclose($fichier);
?>
  • La fonction fgetss() a quasiment la même utilité que la précédente sauf qu'elle n'extrait ni les balises HTML, ni les balises PHP :
 
fgetss(string pointeur, string longueur);

Exemple : Pour un fichier contenant : 'Bonjour ! Test de la fonction fgetss', la fonction ne renverra que les caractères, la mise en forme HTML sera ignorée : 'Bonjour !Test de la fonction fgetss'

  • La fonction fread() permet de lire une chaîne de caractère dans un fichier ouvert, jusqu'a la longueur indiquée en argument :

fread(string pointeur, string longueur);

Exemple : 

$fichier = fopen("essai.txt","r");
$premier = fread($fichier, 10);
echo "Dix Premiers Caractères : " . $premier;
fclose($fichier);
?> 
  • La fonction file() permet de mettre le contenu entier d'un fichier ouvert dans un tableau :
file(string fichier);
Exemple : 

$premier = file("essai.txt");
echo "Première Ligne du fichier : " . $premier[0];
?> 

Ecriture de fichiers:

Pour écrire dans un fichier, on peut utiliser au choix la fonction fwrite() ou fputs() :

fwrite(string pointeur, string chaîne, (string longueur)); fputs(string pointeur, string chaîne, (string longueur));

Le paramètre longueur permet de limiter le nombre de caractères qui pourra être écrit dans le fichier. Arrivé a cette longueur, la fonction s'arrête.

Exemple :

$fichier = fopen("essai.txt","w");
if(fwrite($fichier, "TEXTE A ECRIRE")) {
echo "OK !";
}
else echo "Erreur";
fclose($fichier);
?>

La fonction retourne TRUE si l'écriture se passe normalement, sinon elle retourne FALSE. Attention toutefois : le fichier doit bien être ouvert en mode écriture : w, a ou r+.

Vérifier l'éxistence de fichiers:

Pour vérifier si un fichier existe, on utilise la fonction file_exists() :

file_exists(string fichier);

L'argument fichier est l'adresse du fichier, c'est a dire le chemin permettant d'y accéder. (Ex : inclu/file.txt)

Exemple :

if(file_exists("essai.txt")) {
echo "Fichier existant";
}
else echo "Introuvable !";
?>

Copier/supprimer des fichiers:

Pour déplacer, supprimer ou encore renommer des fichiers, PHP vous propose ces fonctions capitales.

  • Déplacement : Pour copier un fichier, il faut utiliser la fonction copy() :
copy(string fichier_depart, string fichier_destination);

La fonction retourne TRUE si tout se passe correctement et sinon FALSE.

Exemple :

if(@copy("essai.txt","complet/copy_fichier.txt"))
{
Echo "Le fichier essai.txt a été copié dans le répertoire complet/copy_fichier.txt.";
}
else echo "Erreur";
?> 
  • Renommer : Pour renommer un fichier, il faut utiliser la fonction rename() :
rename(string nom_depart, string nom_nouveau);
Exemple :

if(@rename("essai.txt","nouveau_fichier.txt"))
{
Echo "Le fichier essai.txt a été renommé en nouveau_fichier.txt.";
}
else echo "Erreur";
?>
  • Suppression : Pour supprimer un fichier, c'est la fonction unlink() que l'on utilise :
unlink(string fichier);

L'argument fichier correspond au chemin complet du fichier.

Exemple :

if(@unlink("essai.txt"))
{
Echo "Le fichier essai.txt a été supprimé.";
}
else echo "Erreur";
?>

Articles, vidéos et guides en lien avec cette rubrique

lire_ecrire_des_fichiers_en_php.1354177099.txt · Dernière modification: 2012/11/29 09:18 par lws
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki