Leçon 16 : Écrire dans un fichier texte

Dans la leçon précédente, nous avons appris à lire un fichier texte. Dans celle-ci, nous apprendrons à écrire dans un fichier texte.

Le deux méthodes sont très semblables, mais avec une différence très importante : il faut avoir les permissions d'écriture dans le fichier. Cela signifie que le fichier devra se trouver dans un dossier pour lequel vous avez les permissions nécessaires.

Si vous travaillez localement, sur votre ordinateur, vous devez régler les permissions vous-même : faites un clic droit sur le dossier et sélectionner "Propriétés". Avec la plupart des hôtes web, vous aurez normalement un fichier avec les permissions d'écriture. Il sera nommé quelque chose comme "cgi-bin", "log", "databases" ou similaire. Si votre hôte web le permet, vous pourrez également régler les permissions vous-même. Habituellement, vous pourrez le faire en faisant un clic droit sur un fichier dans votre client FTP et sélectionner "propriétés", "permissions" ou similaire. Les copies d'écran qui suivent montrent comment le faire dans FileZilla.

FileZilla

Renseignez-vous dans les pages d'aide de votre hôte web.

Notez que c'est le fichier texte qui doit se trouver dans le dossier avec les permissions d'écriture, pas le fichier PHP.

Ouvrir le fichier texte pour l'écriture

De la même manière que pour la lecture d'un fichier texte, on utilise pour l'écriture la fonction documentationfopen, mais cette fois-ci en réglant le mode sur "w" (écriture) ou "a" (ajout à la fin du fichier).

La différence entre écrire et ajouter tient à la position du 'curseur', soit au début, soit à la fin du fichier texte.

Dans les exemples de cette leçon, nous utilisons un fichier texte vide nommé "textfile.txt", vous pouvez bien sûr créer votre propre fichier texte si vous le souhaitez.

Ouvrons d'abord le fichier texte pour l'écriture :


	<?php

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

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

	?>

	

Exemple 1 : Écrire une ligne dans le fichier texte

Pour écrire une ligne, nous devons utiliser la fonction documentationfwrite, comme ceci :


	<html>

	<head>
	<title>Writing to a text file</title>
	</head>
	<body>

	<?php

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

	// Write text line
	fwrite($f, "PHP is fun!");

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

	// Open file for reading, and read the line
	$f = fopen("textfile.txt", "r");
	echo fgets($f);

	fclose($f);

	?>

	</body>
	</html>

	

Puisque nous avons ouvert le fichier pour une écriture, la ligne s'inscrit au début et remplace de ce fait la ligne existante. Si nous ouvrons le fichier en ajout, la ligne s'inscrit à la fin du fichier texte, lequel s'accroît d'une ligne à chaque fois.

Exemple 2 : Ajouter une bloc de texte à un fichier texte

Il est bien entendu possible d'ajouter un bloc de texte entier, au lieu d'une seule ligne, comme ceci :


	<html>
	<head>
	<title>Write to a text file</title>
	</head>
	<body>

	<?php

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

	// Write text
	fwrite($f, $_POST["textblock"]);

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

	// Open file for reading, and read the line
	$f = fopen("textfile.txt", "r");

	// Read text
	echo fgets($f);
	fclose($f);

	?>

	</body>

	</html>

	

Dans la prochaine leçon, nous verrons une autre façon de stocker des données : les bases de données.



<< Leçon 15 : Lire dans un fichier texte

Leçon 17 : Les bases de données >>