Leçon 15 : Lire dans un fichier texte

Dans la leçon précédente, nous avons vu comment accéder au système de fichiers du serveur. Dans cette leçon, nous mettrons à profit cette connaissance pour lire un fichier texte ordinaire.

Les fichiers texte se révèlent extrêmement utile pour stocker divers types de données. Bien que leur emploi ne soit pas aussi souple que celui d'une véritable base de données, les fichiers texte nécessitent en général moins de mémoire. En outre, le fichier texte est un format ordinaire simple qui fonctionne sur la plupart des systèmes.

Ouvrir le fichier texte

Pour ouvrir un fichier texte, nous utilisons la fonction documentationfopen. La syntaxe est la suivante :


	fopen(nom_du_fichier, mode)

	
nom_du_fichier
Nom du fichier à ouvrir.
mode
Le mode peut se régler sur "r" (lecture), "w" (écriture) or "a" (ajout à la fin). Dans cette leçon, nous ne ferons que lire un fichier et utiliserons donc "r". Dans la leçon suivante, nous apprendrons à écrire et à ajouter du texte à la fin du fichier.

Les exemples de cette leçon font intervenir le fichier texte unitednations.txt. C'est une simple liste des programmes et fonds des Nations Unies et leurs domaines. Vous pouvez soit télécharger le fichier, soit créer votre propre fichier et tester les exemples avec.

Ouvrons d'abord le fichier unitednations.txt :


	<?php

	// Open the text file
	$f = fopen("unitednations.txt", "r");

	// Close the text file
	fclose($f);

	?>


	

Exemple  : Lire une ligne du fichier texte

À l'aide de la fonction documentationfgets, nous pouvons lire une ligne du fichier texte. Cette méthode effectue une lecture jusqu'au premier saut de ligne (celui-ci exclus).


	<html>

	<head>
	<title>Reading from text files</title>
	</head>
	<body>

	<?php

	$f = fopen("unitednations.txt", "r");

	// Read line from the text file and write the contents to the client
	echo fgets($f);

	fclose($f);

	?>

	</body>
	</html>

	

Exemple 2 : Lire toutes les lignes du fichier texte


	<html>

	<head>
	<title>Reading from text files</title>
	</head>
	<body>

	<?php

	$f = fopen("unitednations.txt", "r");

	// Read line by line until end of file
	while(!feof($f)) {
	    echo fgets($f) . "<br />";
	}

	fclose($f);

	?>

	</body>
	</html>

	

Dans cet exemple, nous effectuons une itération dans toutes les ligne et vérifions avec la fonction documentationfeof (pour fin de fichier, en anglais end-of-file) si l'on se trouve à la fin du fichier. Tant que ce n'est pas le cas ("!", voir la leçon 6), on écrit la ligne.

Plutôt que de faire une itération dans toutes les lignes, nous aurions obtenu le même résultat avec la fonction documentationfread. Si vous travaillez avec de très grands fichiers texte, sachez que la fonction documentationfread consomme beaucoup plus de ressources que la fonction documentationfgets. Pour des petits fichiers, ça ne fait pas grande différence.

Exemple 3 : Un annuaire de liens simple

Comme mentionné au début de cette leçon, les fichiers texte peuvent parfaitement convenir pour le stockage de données. Cela sera illustré dans le prochain exemple dans lequel nous créons un annuaire de liens simple à partir du contenu du fichier texte unitednations.txt.

Le fichier est systématiquement écrit avec le nom du programme, puis une virgule et enfin le domaine. Comme vous pouvez vous en douter, il aurait été facile de stocker plus d'informations dans ce fichier de données séparées par des virgules.

Pour récupérer l'information dans chaque ligne, nous utilisons un tableau. Voir la leçon 8 pour plus de renseignements sur les tableaux.


	<html>
	<head>
	<title>Reading from text files</title>

	</head>
	<body>

	<?php
	$f = fopen("unitednations.txt", "r");

	// Read line by line until end of file
	while (!feof($f)) {

	// Make an array using comma as delimiter
	   $arrM = explode(",",fgets($f));

	// Write links (get the data in the array)
	   echo "<li><a href='http://" . $arrM[1] . "'>" . $arrM[0]. "</a></li>";

	}

	fclose($f);
	?>

	</body>
	</html>

	

Pratique, n'est-ce pas ? En principe, vous pourriez maintenant étendre le fichier texte avec des centaines de liens ou peut-être étendre votre annuaire pour également inclure des coordonnées .

Dans la leçon suivante, nous verrons comment écrire dans un fichier texte.



<< Leçon 14 : Le système de fichiers

Leçon 16 : Écrire dans un fichier texte >>