Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

PARCOURIR ET LIRE UNE PARTIE D’UN FICHIER EN PHP

Les alternatives à la fonction fread()

La fonction fread() est très pratique lorsqu’on souhaite lire un fichier dans son ensemble.

Cependant, parfois, nous voudrons plutôt lire un fichier ligne par ligne ou même caractère par caractère. Dans ce cas là, des alternatives à la fonction fread() existent qui vont être plus pratiques à utiliser.

Lire un fichier ligne par ligne en PHP

Pour lire un fichier ligne par ligne en PHP, nous utiliserons la fonction fgets().

Cette fonction va lire une nouvelle ligne d’un fichier PHP à chaque fois qu’on va l’appeler.

On va passer le résultat de la fonction fopen() en argument de fgets().

On peut également préciser en deuxième argument facultatif le nombre de Bytes maximum que notre fonction doit lire (dans le cas d'une ligne très longue). La valeur par défaut (si on ne précise rien donc) est de 1024 Bytes.

Illustrons immédiatement cela avec un exemple, en récupérant notre fichier exemple.txt créé dans la partie précédente.

Utilisation de la fonction PHP fgets()

On utilise la fonction PHP fgets() pour lire un fichier ligne par ligne

Ici, nous effectuons deux appels à la fonction fgets().

Lors du premier appel, la fonction fgets() va lire la première ligne de notre fichier. Lors du second appel, celle-ci va lire la deuxième ligne de notre fichier.

Trouver la fin d’un fichier de taille inconnue

Dans ce cours, nous travaillons pour l’instant sur des exemples simples. Ici, par exemple, nous avons nous mêmes créé un fichier pour effectuer différentes opérations dessus.

Cependant, si vous êtes amené à créer un site plus complexe, il est possible que vous implémentiez un système de génération automatique de fichiers pour stocker des données envoyées par les utilisateurs par exemple.

Dans ce cas là, il est impossible de prévoir à l’avance la taille de ces fichiers.

La fonction PHP feof() (« eof » signifie « end of the file » ou « fin du fichier ») va nous permettre de savoir si la fin d’un fichier a été atteinte ou pas.

Dès que la fin d’un fichier est atteinte, cette fonction va renvoyer la valeur true. Avant cela, elle renverra la valeur false.

On va donc pouvoir utiliser cette fonction pour boucler dans un fichier de taille inconnue.

Créons une boucle affichant un fichier ligne par ligne.

Utilisation de la fonction PHP feof()

On utilise la fonction PHP foef() pour connaître la fin d’un fichier de taille inconnue

Ici, on utilise l’opérateur logique inverse ! pour inverser la valeur logique de notre testpuisqu'on souhaite afficher une nouvelle ligne de notre fichier tant que feof() renvoie false, c'est-à-dire tant que la fin de notre fichier n'a pas été atteinte.

Lire un fichier caractère par caractère

Dans certains cas particuliers, il sera intéressant de pouvoir lire un fichier caractère par caractère, afin de pouvoir vérifier chaque caractère d’un fichier par exemple.

Pour faire cela, nous allons cette-fois ci utiliser la fonction fgetc(). Cette fonction va s’utiliser exactement comme fgets(), et chaque nouvel appel à la fonction va nous permettre de lire un nouveau caractère de notre fichier.

Notez que les espaces sont bien entendus considérés comme des caractères.

Utilisation de la fonction PHP fgetc()

On utilise la fonction fgetc() pour lire un fichier caractère par caractère en PHP

On va encore pouvoir utiliser la fonction fgetc() avec la fonction feof() au sein d’une boucle pour lire entièrement un fichier de taille inconnue caractère par caractère.

Utilisation des fonctions PHP fgetc() et foef() ensemble

On peut utiliser les fonctions PHP fgetc() et foef() au sein d’une boucle pour afficher un fichier caractère par caractère

Chapitre précédent

Chapitre suivant