Chargement...

PHP lire et écrire dans un fichier


Lecture d'un fichier avec fopen et fgets

Il existe plusieurs manières en PHP pour lire un fichier. Je vous parlerai de la fonction fopen() qui nécessite deux arguments pour fonctionner:

fopen( "url fichier", "Mode ouverture" );
Les différents modes d'ouverture:
r Ouvre le fichier en lecture seule et place le pointeur au début du fichier
r+ Ouvre le fichier en lecture et écriture et place le pointeur au début du fichier
w Ouvre le fichier en écriture seule. Si le fichier existe il est écrasé (effacé), si il n'existe pas, PHP le crée.
w+ Ouvre le fichier en lecture et écriture. Si le fichier existe il est écrasé (effacé), si il n'existe pas, PHP le crée.
a Ouvre le fichier en écriture seule et place le pointeur à la fin du fichier
a+ Ouvre le fichier en lecture et écriture et place le pointeur à la fin du fichier
Pour lire la première ligne de texte de votre fichier:
<?php
$file = fopen( "fichier.txt", "r" );
$content = fgets($file, 4096);
fclose($file);
?>
La fonction fgets() récupère les 4096 premiers caractères de la première ligne de votre fichier.

Pour lire tout le fichier, il est nécessaire de parcourir toutes les lignes ainsi:
<?php
$file = fopen( "fichier.txt", "r" );
$content = "";
while(!feof($fp)) {
$content .= fgets($file, 4096);
}
fclose($file);
?>
On remarque la présence de la fonction feof qui permet de vérifier si on est à la fin du fichier.

Pour lire un nombre précis de lignes d'un fichier vous pouvez faire une boucle manuelle :
<?php
$file = fopen( "fichier.txt", "r" );
$content = "";
for( $i = 0 ; $i < 10 ; $i++ )
$content .= fgets($file, 4096);
}
fclose($file);
?>

Lire un fichier avec la fonction file

Il existe une autre méthode pour lire un fichier que je trouve plus simple:
<?php
$lines = file("fichier.txt");
foreach($lines as $n => $line){
echo $line . "<br />";
}
?>

Ecrire dans un fichier

Ecrire dans un fichier suit la même logique que la lecture:
<?php
$file = fopen("fichier.txt", "a");
fwrite($file,"Mon texte");
fclose($file);
?>
Dans cet exemple, l'ouverture se fait avec l'argument "a", on ouvre donc le fichier en écriture et on place le curseur à la fin. Si le fichier n'existe, il est crée.

Lire le contenu d'un dossier

<?php
$folder = __DIR__ ;
if( is_dir( $folder ) && is_readable( $folder )) {
if( $folder_content = opendir( $folder )) {
while( $file = readdir( $folder_content )) {
if( ($file != ".") && ($file != "..") )
echo $file."<br />";
}
}
}
?>



UNE QUESTION SUR L'ARTICLE?


CSSW Apprendre à créer son site web CSSW