Leer archivos de texto en PHP

Subodh Poudel 30 enero 2023
  1. Utilice la función fgets() para leer archivos de texto línea por línea en PHP
  2. Utilice la función file() para leer archivos de texto línea por línea en PHP
  3. Utilice las funciones file_get_contents() y explode() para leer el archivo línea por línea en PHP
Leer archivos de texto en PHP

Este artículo presentará métodos para leer archivos de texto línea por línea en PHP.

Utilice la función fgets() para leer archivos de texto línea por línea en PHP

Podemos usar la función fgets() con un bucle while para leer archivos de texto línea por línea en PHP. La función devuelve una línea si hay una línea, y devuelve falso si no hay más líneas para leer. Se necesitan dos parámetros. La sintaxis es la siguiente.

fgets($file, $length)

Aquí, $file se asemeja a un puntero de archivo que apunta a un archivo abierto correctamente. La opción $length, opcional, denota el número de bytes a leer.

Podemos usar la función open() para leer el archivo y luego usar el bucle while para recorrer cada línea con la función fgets(). Tenemos un archivo de texto abc.txt que contiene los siguientes contenidos.

Hi
How are you
Have a great day 

Por ejemplo, cree una variable $txt_file y escriba la función fopen() en ella. Abra el archivo abc.txt en modo r. Cree una variable de contador de línea $a y asígnele el valor 1. Luego, cree un bucle while. Dentro del paréntesis del bucle, escriba la función fgets() con $text_file como parámetro. Asigne la función a una variable $line en el bucle. Imprima la variable $line, concateándola con la variable $a dentro del cuerpo del bucle. Incremente la variable $a y fuera del bucle, use la función fclose() para cerrar el flujo de archivos.

Código de ejemplo:

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

Producción :

1 Hi 
2 How are you 
3 Have a great day

Utilice la función file() para leer archivos de texto línea por línea en PHP

La función file() lee todo el archivo en un array. La sintaxis de la función file() es la siguiente.

file($filename, $flag, $context)

Aquí, $filename es la ruta del archivo a leer. La opción $flag es opcional y consta de varias constantes como FILE_USE_INCLUDE_PATH, FILE_IGNORE_NEW_LINES y FILE_SKIP_EMPTY_LINES. El tercero también es opcional, que define un recurso de contexto.

La función file() devuelve el array completa si existe o devuelve falso. Podemos usar la función para leer el contexto del archivo línea por línea con el helo de la función foreach(). La función foreach() recorrerá todo el contenido y extraerá cada línea individualmente.

Por ejemplo, almacene la ruta del archivo en una variable $txt_file. Escriba una variable $lines y almacene la función file() en ella con $txt_file como parámetro. A continuación, utilice la función foreach() para recorrer el contenido del archivo. Utilice $lines como iterador y $num=>$line como valor. Dentro del cuerpo del bucle, imprima las variables $num y $line.

Código de ejemplo:

$txt_file = 'abc.txt';

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

Producción :

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

Utilice las funciones file_get_contents() y explode() para leer el archivo línea por línea en PHP

La función file_get_contents() lee todo el archivo en una cadena. Devuelve el archivo completo como una cadena si el contenido existe o devuelve falso. Podemos especificar la ruta del archivo como parámetro de la función. La función explode() divide una cadena en un array usando un separador. La sintaxis de la función explode() es la siguiente.

explode(separator, $string, $limit)

La opción separator se utiliza para separar $string con el número de elementos $limit mientras se devuelve el valor. Podemos combinar las funciones file_get_contents(), explode() y foreach() para leer el archivo de texto línea por línea en PHP.

Por ejemplo, cree una variable $contents y escriba la función file_get_contents() en ella con la ruta de archivo en el parámetro. Utilice la función explode() con el carácter \n como separador y $contents como cadena. Asigna la función a una variable $lines. Utiliza el bucle foreach para recorrer $lines como $line. Luego, imprime la “línea” dentro del cuerpo del bucle.

En el siguiente ejemplo, la variable $contents devuelve una cadena. La dividimos en un array con el carácter de nueva línea \n e imprimimos cada línea utilizando el bucle.

Código de ejemplo:

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

}

Producción :

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