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?