Saltar al contenido

fscanf()

¿Qué es la función fscanf()?

La función fscanf() es una función integrada de PHP que lee datos de un archivo según un formato especificado. Modifica las variables proporcionadas por referencia y devuelve el número de campos leídos correctamente, o false en caso de error.

A continuación se muestra la sintaxis básica de la función fscanf():

La sintaxis de PHP de fscanf()

php
fscanf(file, format, ...);

Donde file es el puntero de archivo desde el cual se leerá, format es una cadena que especifica el formato de los datos a leer, y ... representa una o más variables para almacenar los datos leídos.

¿Cómo usar la función fscanf()?

El uso de la función fscanf() es sencillo. Sigue estos pasos:

  1. Abre el archivo que deseas leer utilizando la función fopen() en modo de solo lectura y verifica que devuelva un recurso válido.
  2. Utiliza un bucle que verifique el valor de retorno de fscanf(), ya que lee tokens basándose en la cadena de formato en lugar de líneas fijas y puede abarcar varias líneas o detenerse en espacios en blanco.
  3. Llama a fscanf() dentro del bucle, pasando el puntero de archivo, la cadena de formato y las variables preinicializadas. Verifica su valor de retorno para manejar errores o un final de archivo inesperado.
  4. Cierra el archivo utilizando la función fclose().

A continuación se muestra un fragmento de código de ejemplo que demuestra cómo usar la función fscanf():

¿Cómo usar la función fscanf()?

php
<?php
$filename = 'data.txt';
$file = fopen($filename, 'r');

if ($file === false) {
    die("Error: Could not open file.");
}

while (($count = fscanf($file, "%s %s %d %f", $first_name, $last_name, $age, $salary)) === 4) {
    echo "Name: $first_name $last_name\nAge: $age\nSalary: $salary\n";
}

fclose($file);
?>

En este ejemplo, abrimos el archivo data.txt usando fopen() y verificamos que devolvió un recurso válido. Luego utilizamos un bucle while que verifica el valor de retorno directamente, evitando bucles infinitos si fscanf() encuentra una línea incompleta o el final del archivo (EOF). fscanf() modifica las variables por referencia y devuelve el número de campos asignados correctamente; el bucle solo continúa cuando se leen los cuatro campos. Los especificadores de formato comunes incluyen %s (cadena), %d (entero), %f (flotante) y %c (carácter único). Finalmente, mostramos los datos y cerramos el archivo con fclose().

Funciones relacionadas Para tareas similares, considera sscanf() para analizar cadenas formateadas en lugar de archivos, o fgetcsv() para leer archivos CSV línea por línea.

Conclusión

La función fscanf() es una herramienta útil en PHP para leer datos formateados desde archivos. Siguiendo los pasos descritos en esta guía, podrás usar fácilmente la función fscanf() en tus proyectos de PHP para leer datos formateados desde archivos.

Práctica

¿Cuál es la función de fscanf() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.