Lire et écrire dans un fichier – partie 1

4.00 avg. rating (65% score) - 1 vote
Partager:

Pour lire et écrire dans un fichier, il y a plusieurs méthodes. Ces méthodes auront bientôt plus de secrets pour vous.

Ecrire dans un fichier

Pour écrire dans un fichier rien de mieux que la fonction file_put_contents() ce qui évite d’utiliser les fonctions fopen(), fwrite() et fclose().

Attention
Si le fichier existe pas, il sera crée. Par contre si il existe déjà, il sera écrasé par le nouveau.

La fonction file_put_contents() prend deux paramètres, le chemin vers le fichier et le texte à écrire:


<?php
file_put_contents('test.txt', "Texte sur la première ligne\nTexte sur la seconde ligne du fichier");
?>

Ce qui donne:

Texte sur la première ligne
Texte sur la seconde ligne du fichier

Pour écrire sur plusieurs lignes, il faut ajouter des \n a la fin, autrement le texte sera ajouté sur la même ligne.

Attention
L’utilisation de ‘ au lieu de " place le texte sur une seule ligne, il faut donc toujours utiliser des "

Exemple:


<?php
file_put_contents('test.txt', 'Texte sur la première ligne\nTexte sur la seconde ligne du fichier');
?>

Ce qui donne:

Texte sur la première ligne\nTexte sur la seconde ligne du fichier

Pour écrire dans un fichier tout en conservant les données, il y a plusieurs techniques. On peux décider d’écrire soit a la fin du fichier ou au début.

Voila un code qui permet de récupérer le contenu du fichier et d’y écrire au début:


<?php
// Nom du fichier
$filename = 'test.txt';

// La ligne a rajouter au fichier
$texte = date("Y-m-d H:i:s")."\n";

// On rajoute le contenu du fichier
$texte .= file_get_contents($filename);

// On écrit le résultat dans le fichier
file_put_contents($filename, $texte);

// ---------- ---------- ---------- ---------- ----------

// On écrit a la fin du fichier:

// Nom du fichier
$filename = 'test.txt';

// On ouvre le fichier pour récupérer son contenu
$texte = file_get_contents($filename);

// La ligne a rajouter au fichier
$texte .= date("Y-m-d H:i:s")."\n";

// On écrit le résultat dans le fichier
file_put_contents($filename, $texte);
?>

Comment fonctionne les deux exemples précédants ? Pour l’exemple 1, on veut écrire au début. On met donc ce qu’on veut écrire dans une variable. Ensuite on rajoute a cette variable le contenue du fichier qu’on va récupérer grace a la fonction file_get_contents(). Pour lier les deux on utilise .=, pour écrire a la fin on fait tout simplement l’inverse, mais on peut aussi utiliser cette technique:


<?php
// On écrit au début du fichier:

// Nom du fichier
$filename = "test.txt";

// Texte à écrire
$texte = date("Y-m-d H:i:s")."\n".file_get_contents($filename);

// On écrit le résultat dans le fichier
file_put_contents($filename, $texte);

// ---------- ---------- ---------- ---------- ----------

// On écrit a la fin du fichier:

// Nom du fichier
$filename = "test.txt";

// Texte à écrire
$texte = file_get_contents($filename)."\n".date("Y-m-d H:i:s");

// On écrit le résultat dans le fichier
file_put_contents($filename, $texte);
?>

Lire un fichier

On peut utiliser file() ou file_get_contents() pour les plus simple.
La fonction file() va retourner le fichier sous forme d’array.
La fonction file_get_contents() quand t’a elle va retourner le fichier sous forme de chaine

Exemple d’utilisation de la fonction file():


<?php
// Nom du fichier
$filename = 'test.txt';

$fichier = file($filename); // On ouvre le fichier
echo $fichier[0]; // On affiche la ligne 1
echo $fichier[1]; // On affiche la ligne 2

// On peut aussi afficher le fichier en entier grace a une boucle:	
	foreach ($fichier as $key => $value)
	{
echo $value."<br>\";
	}
?>

Exemple d’utilisation de la fonction file_get_contents():


<?php
// Nom du fichier
$filename = 'test.txt';

$fichier = file_get_contents($filename); // On ouvre le fichier

echo nl2br($fichier); // nl2br remplace les sauts de lignes par des <br>
?>

On peut aussi choisir ce qu’on veut afficher avec file_get_contens():


<?php
// On affiche 8 caractères à partir du 31 
echo $section = file_get_contents('./test.txt', NULL, NULL, 31, 8);
?>

La fonction permet aussi de récupérer le contenu d’une page web:


<?php
$homepage = file_get_contents('http://www.google.fr');
echo $homepage; // On affiche la page
?>

Les fichiers ont maintenant plus de secret pour vous.


Tous les codes sont testés et sont fonctionnels, si un de ces codes ne marche pas chez vous, merci de me le signaler.
Partager:
4.00 avg. rating (65% score) - 1 vote

Vous aimerez aussi...

Laisser un commentaire