Les fichiers textes

La gestion des fichiers n'est pas particulièrement simple en PHP mais facilement abordable pour un débutant. D'un autre coté les fichiers textes sont une bonne alternative à la BDD. PHP possède toute une série de fonctions qui vous permettront de créer, écrire, modifier et supprimer un fichier texte. PHP propose également des fonctions comme chmod() pour changer le mode du fichier directement en ligne si votre serveur l'autorise, et bien d'autre fonctions pour les accès aux fichiers distants !!

Sommaire :
Comment ouvrir un fichier ?
La fonction fopen est utilisé pour ouvrir un fichier.

Le premier paramètre de la fonction est le nom du fichier et le second paramètre est le mode dans lequel vous pouvez ouvrir votre fichier.

.01
.02
.03
.04
.05
.06
.07
.08
 
<html>
<body>
<?php
$f
=fopen("exemple.txt","r");
?>
</body>
</html>




Les différents modes.
Le fichier peut être ouvert dans un des modes suivants :

Modes et descriptions des différents modes :

'r' Ouvre en lecture seule : Le pointeur est placé au début du fichier.
'r+' Ouvre en lecture/écriture : Le pointeur est placé au début du fichier.
'w' Ouvre en écriture seule : Le pointeur est placé au début du fichier. Réduit la taille du fichier à 0. Tentative de création si celui ce n'existe pas.
'w+' Ouvre en lecture/écriture : Le pointeur est placé au début du fichier. Réduit la taille du fichier à 0. Tentative de création si celui ce n'existe pas.
'a' Ouvre en écriture seule : Le pointeur est placé au début du fichier. Tentative de création si celui ce n'existe pas.
'a+' Ouvre en lecture/écriture : Le pointeur est placé à la fin du fichier. Tentative de création si celui ce n'existe pas.
'x' Crée et ouvre le fichier en lecture seule : Le pointeur est placé au début du fichier. Si le fichier existe déjà, fopen va échouer.
'x+' Crée et ouvre le fichier en lecture/écriture : Le pointeur est placé au début du fichier. Si le fichier existe déjà, fopen va échouer.
Note
Si la fonction fopen() echoue lors de l'ouverture du fichier, celle ci retourne 0
Exemple :
L'exemple ci dessous génère un message si la fonction fopen() est incapable d'ouvrir le fichier spécifié.
.01
.02
.03
.04
.05
.06
.07
.08
.09
 
<html>
<body>
<?php
if (!($f=fopen("exemple.txt","r")))
exit(
"Unable to open file!");
?>
</body>
</html>




Fermer un fichier.
La fonction fclose() est utilisé pour fermer un fichier.
Syntaxe :
.01
.02
.03
.04
 
<?php
fclose
($f);
?>




Écrire dans un fichier.
L'écriture dans un fichier texte se fait avec la fonction fwrite(). Pour faire des retour à la ligne vous devez utiliser : "\r\n"
.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
 
<?php

$f
= 'exemple.txt';
$text = "ma chaine de caractères";
$handle = fopen($f,"w");

// regarde si le fichier est accessible en écriture
if (is_writable($f)) {
// Ecriture
   
if (fwrite($handle, $text) === FALSE) {
      echo
'Impossible d\'écrire dans le fichier '.$f.'';
      exit;
    }
   
    echo
'Ecriture terminé';
   
   
fclose($handle);
                   
}
else {
      echo
'Impossible d\'écrire dans le fichier '.$f.'';
    }

?>




Compter le nombre de lignes.
A l'aide de 2 fonctions. L'une place le fichier dans un tableau et l'autre pour compter les lignes du tableau.
.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
 
<?php

$f
= 'exemple.txt';
if(
file_exists($f)) {
   
$tab = file($f);  // place le fichier dans un tableau
   
$nb = count($tab);    // compte le nombre de ligne
   
echo $nb// Affiche le résultat
}

?>




Trouver la fin d'un fichier.
La fonction feof() est utilisé pour déterminer si le pointeur est placé à la fin du fichier ou lister un fichier jusqu'au dernier caractère.
.01
.02
.03
.04
.05
 
<?php
if (feof($f))
echo
'Fin du fichier';
?>


Et voilà!! Vous voyez que c'est très simple de récupérer un contenu de fichier. Dans les 2 possibilités donnée ci dessus le résultat se trouve dans la chaine de caractère "$contents".
Lire un fichier ligne par ligne
Exemple :
L'exemple suivant fait la lecture du fichier ligne par ligne jusqu'à la fin du fichier
.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
 
<?php

 
// Nom du fichier à ouvrir
   
$fichier = file("VotreFichier.txt");
   
// Nombre total de ligne du fichier
   
$total = count($fichier);

    for(
$i = 0; $i < $total; $i++) {
   
// On affiche ligne par ligne le contenu du fichier
    // avec la fonction nl2br pour ajouter les sauts de lignes
   
echo nl2br($fichier[$i]);
    }

   
// OU en ayant les numéros de ligne et l'ajout des sauts de lignes

    // Affiche toute les lignes du tableau
    // avec les numéros de ligne
   
foreach ($fichier as $line_num => $line) {
        echo
"Ligne #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />n";
    }
?>


Il existe d'autre manières de lire des fichiers Textes, vous pouvez trouver ces codes sur le site :