Pour les exemples, nous utiliserons le fichier "commentaires.txt" du dossier test_fichiers.

Gaston Lagaffe|gl@xyz.com|22/10/2012|Quel excellent site sur JAVA.<br>Je le recommande à tous les internautes.
Florence Arto|lamer@quonvoitdanser.fr|25/10/2012|La navigation est parfois difficile mais les<br>recherches sont toujours récompensées.
Darth V|dv@starwars.com|27/10/2012|Je sens la FORCE ici ...
Le Grinch|grinch@couine.com|27/10/2012|Ce site est nul. Venez plutôt voir le mien : http://www.zegrinch.com

Si vous ne voyez pas le dossier test_fichiers et le fichier commentaires.txt, ou si vous voulez le ré-initialiser utilisez ce script.

Lire un fichier entier (tableau)

La façon la plus simple de lire un fichier est d'utiliser la fonction file() qui :

file() est donc particulièrement adaptée pour lire des fichiers contenant des enregistrements de longueur variable, séparés par une marque de nouvelle ligne (par défaut \r\n sous Windows, \n sous un autre système), et d'une taille.

Exemple : lire un fichier avec file()

Pour extraire les différents champs d'un enregistrement, nous pouvons utiliser la fonction explode() avec le caractère | comme délimiteur.

Exemple : lire un fichier avec file()

Lire un fichier entier (buffer)

Nous pouvons récupèrer le contenu d'un fichier dans un buffer : une variable qui recevra tout le contenu du fichier.

Nous devons alors exécuter les opérations suivantes :

Exemple : lire un fichier avec fread

Lire un fichier ligne par ligne

Pour lire un fichier séquentiellement, ligne par ligne, on réalisera les opérations suivantes :

Exemple : lire un fichier ligne par ligne

Si le fichier contenait des enregistrements de longueur fixe, nous pourrions utiliser la fonction fread()à la place de fgets().
Pour un fichier dont les enregistrements seraient tous de 120 caractères, nous aurions le code suivant :

// Boucle de lecture
while (! feof($fichier) ) {
	// Lecture d'une ligne
	$enreg = fread($fichier, 120);
  	... traitement ...
}