Comment lire un gros fichier ligne par ligne en PHP

Minahil Noor 3 janvier 2023
  1. Utilisez la fonction fgets() pour lire un gros fichier ligne par ligne en PHP
  2. Utilisez la fonction file() pour lire un gros fichier ligne par ligne en PHP
  3. Utilisez la fonction stream_get_line() pour lire un gros fichier ligne par ligne en PHP
Comment lire un gros fichier ligne par ligne en PHP

Dans cet article, nous introduirons des méthodes pour lire un gros fichier ligne par ligne en PHP.

  • Utilisation de la fonction fgets()
  • Utilisation de la fonction file()
  • Utilisation de la fonction stream_get_line()

Utilisez la fonction fgets() pour lire un gros fichier ligne par ligne en PHP

La fonction intégrée fgets() lit une ligne d’un fichier ouvert. Nous pouvons utiliser cette fonction pour lire un gros fichier ligne par ligne. La syntaxe correcte pour utiliser cette fonction est la suivante.

fgets($fileName, $lengthOfFile);

La fonction fgets() a deux paramètres. Les détails de ses paramètres sont les suivants

Paramètres Description
$fileName obligatoire C’est le dossier que nous voulons lire ligne par ligne.
$lengthOfFile facultatif Il indique la longueur du dossier à lire. Sa valeur par défaut est de 1024 octets.

Cette fonction retourne une chaîne de lengthOfFile -1 à partir du fichier spécifié par l’utilisateur en cas de succès. Elle retourne False en cas d’échec.

Le programme ci-dessous montre comment nous pouvons utiliser la fonction fgets() pour lire un gros fichier ligne par ligne. Nous utiliserons les fonctions fopen() et fclose() pour ouvrir et fermer un fichier respectivement. Nous avons un fichier texte nommé flowers.txt qui contient les détails des fleurs.

<?php 
if ($file = fopen("flowers.txt", "r")) {
    while(!feof($file)) {
        $line = fgets($file);
       echo ("$line");
    }
    fclose($file);
}   
?> 

Nous avons utilisé la fonction feof() pour lire le fichier jusqu’à la fin. La sortie montre le contenu du fichier lu ligne par ligne.

Production:

fonction fgets pour lire un gros fichier ligne par ligne en PHP

Utilisez la fonction file() pour lire un gros fichier ligne par ligne en PHP

En PHP, nous pouvons également utiliser la fonction file() pour lire un fichier ligne par ligne. La fonction file() lit un fichier dans un tableau ligne par ligne. La syntaxe correcte pour utiliser cette fonction est la suivante:

file($fileName, $flags, $context)

La fonction file() accepte trois paramètres. Le détail de ses paramètres est le suivant

Paramètres Description
$fileName obligatoire Il s’agit du chemin d’accès où notre fichier est stocké.
$flags facultatif Il indique les constantes que nous pouvons utiliser comme indicateurs pour cette fonction. Vous pouvez le lire ici.
$context facultatif Il s’agit de la ressource que vous pouvez créer en utilisant la fonction stream_context_create().

Le programme qui lit le fichier en utilisant la fonction file() est le suivant:

<?php 
foreach(file('flowers.txt') as $line) {
   echo $line. "\n";
} 
?> 

Utilisez la fonction stream_get_line() pour lire un gros fichier ligne par ligne en PHP

Nous pouvons également utiliser la fonction stream_get_line() pour lire un fichier ligne par ligne. Cette fonction lit un fichier jusqu’à un délimiteur. La syntaxe correcte pour utiliser cette fonction est la suivante:

stream_get_line($handle, $length, $ending)

La fonction stream_get_line() accepte trois paramètres. Le détail de ses paramètres est le suivant

Paramètres Description
$handle obligatoire Il s’agit du chemin d’accès où notre fichier est stocké.
$length obligatoire Il indique la longueur du dossier à lire.
$ending obligatoire Il s’agit d’une chaîne qui parle du délimiteur.

Le programme qui lit le fichier en utilisant la fonction stream_get_line() est le suivant:

<?php 
$file = fopen("flowers.txt", "r+");
while ($line = stream_get_line($file, 1024 * 1024, ".")) {
  echo $line;
}
fclose($file);
?> 

Production:

stream_get_line( fonction pour lire un gros fichier ligne par ligne en PHP

Note
Le délimiteur . est supprimé de la sortie.

Article connexe - PHP File