fgets

(PHP 4, PHP 5, PHP 7, PHP 8)

fgetsRecupera la línea actual a partir de la posición del puntero de archivo

Descripción

fgets(resource $stream, ?int $length = null): string|false

Recupera la línea actual a partir de la posición del puntero de archivo.

Parámetros

stream

El fichero al que se apunta debe ser válido, y debe apuntar a un fichero abierto por fopen() o fsockopen() (y que todavía no esté cerrado por fclose()).

length

Lee hasta la longitud length - 1 byte desde el puntero de archivo stream, o bien el final del archivo, o una nueva línea (que es incluida en el valor devuelto), o un EOF (el que llegue primero). Si no se proporciona longitud, la función leerá el flujo hasta el final de la línea.

Valores devueltos

Devuelve un string que contiene los length primeros caracteres, menos 1 byte desde el puntero de archivo stream. false es devuelto si no hay más datos para leer.

Si ocurre un error, la función devuelve false.

Ejemplos

Ejemplo #1 Lectura de un archivo línea por línea

<?php

$fp
= @fopen("/tmp/inputfile.txt", "r");

if (
$fp) {
while ((
$buffer = fgets($fp, 4096)) !== false) {
echo
$buffer, PHP_EOL;
}
if (!
feof($fp)) {
echo
"Error: fgets() falló\n";
}

fclose($fp);
}

?>

Notas

Nota: Si sufre problemas con PHP no reconociendo los finales de línea cuando lee o crea ficheros en Macintosh, puede probar de activar la opción de configuración en tiempo de ejecución auto_detect_line_endings para intentar resolver el problema.

Nota:

Los programadores acostumbrados a la programación 'C' notarán que fgets() no se comporta como su equivalente en C al encontrar el final del archivo.

Ver también

  • fgetss() - Obtiene un línea desde un puntero a un archivo y elimina las etiquetas HTML
  • fread() - Lectura del archivo en modo binario
  • fgetc() - Lee un carácter en un fichero
  • stream_get_line() - Obtiene una línea del recurso de flujo hasta un delimitador dado
  • fopen() - Abre un fichero o un URL
  • popen() - Crea un puntero de archivo de proceso
  • fsockopen() - Abre un socket de conexión Internet o Unix
  • stream_set_timeout() - Establecer un perido de tiempo de espera en un flujo