Lire des fichiers texte en PHP

Subodh Poudel 18 octobre 2021
  1. Utilisez la fonction fgets() pour lire les fichiers texte ligne par ligne en PHP
  2. Utilisez la fonction file() pour lire les fichiers texte ligne par ligne en PHP
  3. Utilisez les fonctions file_get_contents() et explode() pour lire le fichier ligne par ligne en PHP
Lire des fichiers texte en PHP

Cet article présentera des méthodes pour lire les fichiers texte ligne par ligne en PHP.

Utilisez la fonction fgets() pour lire les fichiers texte ligne par ligne en PHP

On peut utiliser la fonction fgets() avec une boucle while pour lire les fichiers texte ligne par ligne en PHP. La fonction renvoie une ligne s’il y a une ligne, et elle renvoie false s’il n’y a plus de lignes à lire. Il faut deux paramètres. La syntaxe est la suivante.

fgets($file, $length)

Ici, $file ressemble à un pointeur de fichier qui pointe vers un fichier ouvert avec succès. L’option $length, facultative, désigne le nombre d’octets à lire.

Nous pouvons utiliser la fonction open() pour lire le fichier, puis utiliser la boucle while pour parcourir chaque ligne avec la fonction fgets(). Nous avons un fichier texte abc.txt contenant le contenu suivant.

Hi
How are you
Have a great day 

Par exemple, créez une variable $txt_file et écrivez la fonction fopen() dedans. Ouvrez le fichier abc.txt en mode r. Créez une variable de compteur de ligne $a et attribuez-lui la valeur 1. Ensuite, créez une boucle while. A l’intérieur de la parenthèse de la boucle, écrivez la fonction fgets() avec $text_file comme paramètre. Affectez la fonction à une variable $line dans la boucle. Imprimez la variable $line en la concaténant avec la variable $a à l’intérieur du corps de la boucle. Incrémentez la variable $a et en dehors de la boucle, utilisez la fonction fclose() pour fermer le flux de fichiers.

Exemple de code :

<?php
$txt_file = fopen('abc.txt','r');
$a = 1;
while ($line = fgets($txt_file)) {
 echo($a." ".$line)."<br>";
 $a++;
}
fclose($txt_file);
?>

Production:

1 Hi 
2 How are you 
3 Have a great day

Utilisez la fonction file() pour lire les fichiers texte ligne par ligne en PHP

La fonction file() lit le fichier entier dans un tableau. La syntaxe de la fonction file() est la suivante.

file($filename, $flag, $context)

Ici, $filename est le chemin du fichier à lire. L’option $flag est facultative et comprend diverses constantes telles que FILE_USE_INCLUDE_PATH, FILE_IGNORE_NEW_LINES et FILE_SKIP_EMPTY_LINES. Le troisième est également facultatif, ce qui définit une ressource de contexte.

La fonction file() renvoie le tableau entier s’il existe ou renvoie false. On peut utiliser la fonction pour lire le contexte du fichier ligne par ligne avec le helo de la fonction foreach(). La fonction foreach() parcourra tout le contenu et extraira chaque ligne individuellement.

Par exemple, stockez le chemin du fichier dans une variable $txt_file. Ecrivez une variable $lines et stockez la fonction file() dessus avec $txt_file comme paramètre. Ensuite, utilisez la fonction foreach() pour parcourir le contenu du fichier. Utilisez $lines comme itérateur et $num=>$line comme valeur. À l’intérieur du corps de la boucle, imprimez les variables $num et $line.

Exemple de code :

$txt_file = 'abc.txt';

$lines = file($txt_file);
foreach ($lines as $num=>$line)
{
 echo 'Line '.$num.': '.$line.'<br/>';
}

Production:

Line 0: Hi 
Line 1: How are you 
Line 2: Have a great day

Utilisez les fonctions file_get_contents() et explode() pour lire le fichier ligne par ligne en PHP

La fonction file_get_contents() lit le fichier entier dans une chaîne. Il renvoie le fichier entier sous forme de chaîne si le contenu existe ou il renvoie false. Nous pouvons spécifier le chemin du fichier comme paramètre de la fonction. La fonction explode() divise une chaîne en un tableau à l’aide d’un séparateur. La syntaxe de la fonction explode() est la suivante.

explode(separator, $string, $limit)

L’option separator est utilisée pour séparer $string avec le nombre d’éléments $limit tout en retournant la valeur. On peut combiner les fonctions file_get_contents(), explode() et foreach() pour lire le fichier texte ligne par ligne en PHP.

Par exemple, créez une variable $contents et écrivez la fonction file_get_contents() dessus avec le chemin du fichier dans le paramètre. Utilisez la fonction explode() avec le caractère \n comme séparateur et $contents comme chaîne de caractères. Affectez la fonction à une variable $lines. Utilisez la boucle foreach pour boucler $lines comme $line. Puis, imprimez la $line dans le corps de la boucle.

Dans l’exemple ci-dessous, la variable $contents renvoie une chaîne de caractères. Nous la divisons en un tableau avec le caractère de nouvelle ligne \n et imprimons chaque ligne en utilisant la boucle.

Exemple de code :

$contents=file_get_contents("abc.txt");
$lines=explode("\n",$contents);
foreach($lines as $line){
 echo $line.'<br>';

}

Production:

Hi 
How are you 
Have a great day
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn