Vaya al Contenido

PHP Leer Archivos - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Manejo de archivos

Leer Archivos en PHP


En PHP, existen varias funciones que permiten leer archivos de diferentes maneras según el caso de uso. Ya sea que necesites leer una línea completa, un solo carácter o un archivo en formato binario, PHP proporciona herramientas flexibles y eficientes para trabajar con archivos.
En este artículo, exploraremos en detalle algunas de las funciones más útiles para leer archivos: fgets(), fgetc(), fread(), y fscanf(). Veremos ejemplos prácticos para cada una de estas funciones, que te permitirán implementar la lectura de archivos en tus proyectos.

Tabla de contenidos La función fgets() Ejemplo 1: Leer una línea de un archivo Ejemplo 2: Leer todo el archivo línea por línea La función fgetc() Ejemplo 1: Leer un carácter de un archivo Ejemplo 2: Leer el archivo carácter por carácter La función fread() Ejemplo 1: Leer un archivo completo Ejemplo 2: Leer un archivo binario La función fscanf() Ejemplo: Leer datos estructurados de un archivo Conclusión

La función fgets()


La función fgets() se utiliza para leer una línea de un archivo abierto. El comportamiento por defecto de fgets() es detenerse cuando encuentra una nueva línea (\n), ha leído el número especificado de bytes o alcanza el final del archivo.

Sintaxis:


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

$stream: Un puntero al archivo abierto con fopen().
$length: Número opcional de bytes a leer.

Ejemplo 1: Leer una línea de un archivo


<?php
$archivo = fopen("mi_archivo.txt", "r");

if ($archivo) {
$linea = fgets($archivo);
echo $linea;
fclose($archivo);
} else {
echo "No se pudo abrir el archivo.";
}
?>


Explicación:


fgets($archivo): Lee la primera línea del archivo.
fclose($archivo): Cierra el archivo después de la lectura.

Ejemplo 2: Leer todo el archivo línea por línea


Si deseas leer todo el archivo línea por línea, puedes utilizar un bucle y la función feof() para detectar el final del archivo.

<?php
$archivo = fopen("mi_archivo.txt", "r");


if ($archivo) {
while (!feof($archivo)) {
echo fgets($archivo) . "<br>";
}
fclose($archivo);
} else {
echo "No se pudo abrir el archivo.";
}
?>


Explicación:


feof($archivo): Verifica si se ha alcanzado el final del archivo.
Este código imprime todas las líneas del archivo con saltos de línea HTML.

La función fgetc()


La función fgetc() lee un solo carácter del archivo cada vez. Esto es útil cuando deseas procesar un archivo carácter por carácter.

Sintaxis:


fgetc(resource $stream): string|false

Ejemplo 1: Leer un carácter de un archivo


<?php
$archivo = fopen("mi_archivo.txt", "r");

if ($archivo) {
$caracter = fgetc($archivo);
echo $caracter;
fclose($archivo);
} else {
echo "No se pudo abrir el archivo.";
}
?>


Explicación:


fgetc($archivo): Lee el primer carácter del archivo.

Ejemplo 2: Leer el archivo carácter por carácter


Puedes utilizar fgetc() dentro de un bucle para leer el archivo completo carácter a carácter.

<?php
$archivo = fopen("mi_archivo.txt", "r");

if ($archivo) {
while (!feof($archivo)) {
$caracter = fgetc($archivo);
if ($caracter == "\n") {
echo "<br>";
} else {
echo $caracter;
}
}
fclose($archivo);
} else {
echo "No se pudo abrir el archivo.";
}
?>


Explicación:


Este ejemplo lee el archivo carácter por carácter y añade un salto de línea HTML cada vez que encuentra un salto de línea en el archivo.

La función fread()


La función fread() se utiliza para leer un número específico de bytes de un archivo. Es particularmente útil cuando trabajas con archivos binarios.

Sintaxis:


fread(resource $stream, int $length): string|false

Ejemplo 1: Leer un archivo completo


<?php
$archivo = "mi_archivo.txt";
$fp = fopen($archivo, "r");

if ($fp) {
$contenido = fread($fp, filesize($archivo));
echo $contenido;
fclose($fp);
} else {
echo "No se pudo abrir el archivo.";
}
?>


Explicación:


fread($fp, filesize($archivo)): Lee todo el contenido del archivo basado en su tamaño total.

Ejemplo 2: Leer un archivo binario


La función fread() también se puede utilizar para leer archivos binarios, como imágenes.

<?php
$archivo = "imagen.png";
$fp = fopen($archivo, "rb");

if ($fp) {
$contenido = fread($fp, filesize($archivo));
var_dump($contenido);
fclose($fp);
} else {
echo "No se pudo abrir el archivo.";
}
?>


Explicación:


fopen($archivo, "rb"): Abre el archivo en modo de lectura binaria.
fread(): Lee el archivo completo y utiliza var_dump() para mostrar el contenido binario.

La función fscanf()


La función fscanf() se utiliza para leer y formatear los datos de un archivo de manera estructurada. Similar a scanf() en C, permite extraer valores específicos según un formato predefinido.

Sintaxis:


fscanf(resource $stream, string $format, mixed &...$vars): array|int|false|null

Ejemplo: Leer datos estructurados de un archivo


<?php
$archivo = fopen("empleados.txt", "r");

if ($archivo) {
while ($info = fscanf($archivo, "%s\t%s\t%d\n")) {
list($nombre, $email, $salario) = $info;
echo "Nombre: $nombre, Email: $email, Salario: $salario
";
}
fclose($archivo);
} else {
echo "No se pudo abrir el archivo.";
}
?>


Explicación:


fscanf($archivo, "%s\t%s\t%d\n"): Lee una línea del archivo y extrae los valores como nombre, email y salario.
list(): Asigna los valores extraídos a las variables correspondientes.

Conclusión


En PHP, tienes a tu disposición una variedad de funciones para leer archivos de manera eficiente. Dependiendo de tus necesidades, puedes utilizar fgets() para leer líneas, fgetc() para leer caracteres, fread() para leer archivos completos o binarios, y fscanf() para leer datos estructurados. El manejo adecuado de estas funciones te permitirá trabajar con archivos de manera efectiva en tus aplicaciones.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"