Cómo leer un archivo grande línea por línea en PHP
-
Usa la función
fgets()
para leer un archivo grande línea por línea en PHP -
Use la función
file()
para leer un archivo grande línea por línea en PHP -
Use la función
stream_get_line()
para leer un archivo grande línea por línea en PHP
En este artículo, introduciremos métodos para leer un archivo grande línea por línea en PHP.
- Usando la función
fgets()
- Usando la función
file()
- Usando la función
stream_get_line()
Usa la función fgets()
para leer un archivo grande línea por línea en PHP
La función incorporada fgets()
lee una línea de un archivo abierto. Podemos usar esta función para leer un archivo grande línea por línea. La sintaxis correcta para usar esta función es la siguiente.
fgets($fileName, $lengthOfFile);
La función fgets()
tiene dos parámetros. Los detalles de sus parámetros son los siguientes
Parámetros | Descripción | |
---|---|---|
$fileName |
obligatorio | Es el archivo que queremos leer línea por línea. |
$lengthOfFile |
opcional | Dice sobre la longitud del archivo a ser leído. Su valor por defecto es de 1024 bytes. |
Esta función devuelve una string
de lengthOfFile -1
del archivo especificado por el usuario si tiene éxito. Devuelve False
si falla.
El siguiente programa muestra cómo podemos usar la función fgets()
para leer un archivo grande línea por línea. Usaremos las funciones fopen()
y fclose()
para abrir y cerrar un archivo respectivamente. Tenemos un archivo de texto llamado flowers.txt
que contiene los detalles de las flores.
<?php
if ($file = fopen("flowers.txt", "r")) {
while(!feof($file)) {
$line = fgets($file);
echo ("$line");
}
fclose($file);
}
?>
Hemos usado la función feof()
para leer el archivo hasta el final. La salida muestra el contenido del archivo leído línea por línea.
Resultado:
Use la función file()
para leer un archivo grande línea por línea en PHP
En PHP, también podemos usar la función file()
para leer un archivo línea por línea. La función file()
lee un archivo en un array línea por línea. La sintaxis correcta para usar esta función es la siguiente:
file($fileName, $flags, $context)
La función file()
acepta tres parámetros. El detalle de sus parámetros es el siguiente
Parámetros | Descripción | |
---|---|---|
$fileName |
obligatorio | Es la ruta donde se almacena nuestro archivo. |
$flags |
opcional | Nos habla de las constantes que podemos usar como banderas para esta función. Puedes leerlo aquí. |
$context |
opcional | Es el recurso que puedes crear usando la función stream_context_create(). |
El programa que lee el archivo usando la función file()
es el siguiente:
<?php
foreach(file('flowers.txt') as $line) {
echo $line. "\n";
}
?>
Use la función stream_get_line()
para leer un archivo grande línea por línea en PHP
También podemos usar la función stream_get_line()
para leer un archivo línea por línea. Esta función lee un archivo hasta un delimitador. La sintaxis correcta para usar esta función es la siguiente:
stream_get_line($handle, $length, $ending)
La función stream_get_line()
acepta tres parámetros. El detalle de sus parámetros es el siguiente
Parámetros | Descripción | |
---|---|---|
$handle |
obligatorio | Es la ruta donde se almacena nuestro archivo. |
$length |
obligatorio | Dice la longitud del archivo para ser leído. |
$ending |
obligatorio | Es una cadena que habla sobre el delimitador. |
El programa que lee el archivo usando la función stream_get_line()
es el siguiente:
<?php
$file = fopen("flowers.txt", "r+");
while ($line = stream_get_line($file, 1024 * 1024, ".")) {
echo $line;
}
fclose($file);
?>
Resultado:
.
se elimina de la salida.