Trabajo con el sistema de archivos en PHP: guía práctica

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: por qué es importante saber trabajar con el sistema de archivos en PHP

Cualquier desarrollador web, tarde o temprano, se enfrenta a la necesidad de guardar datos en el servidor, cargar imágenes, crear archivos temporales o leer configuraciones. PHP proporciona un potente conjunto de funciones para trabajar con el sistema de archivos que permiten realizar todas estas tareas de forma rápida y segura.

En este artículo, analizaremos las operaciones más demandadas: lectura y escritura de archivos, creación y eliminación de directorios, verificación de la existencia de elementos, así como el trabajo con rutas. Todos los ejemplos están escritos en PHP y listos para usar en sus proyectos.



Funciones principales para trabajar con archivos

Empecemos con las operaciones básicas: abrir, leer y escribir archivos. PHP admite varias formas de interactuar con archivos, y veremos las más populares.



Abrir y cerrar un archivo: fopen y fclose

La función fopen() abre un archivo y devuelve un descriptor para trabajar posteriormente. Los modos de apertura determinan qué puede hacer con el archivo: leer (r), escribir (w), añadir (a), etc.

<?php// Abrimos un archivo para lectura$file = fopen("data.txt", "r");if ($file) {    // Trabajamos con el archivo    fclose($file); // Obligatorio cerrarlo} else {    echo "No se pudo abrir el archivo";}?>


Lectura de un archivo: fread, fgets, file_get_contents

Para leer el contenido se pueden usar diferentes funciones según la tarea:

  • fread() — lee una cantidad específica de bytes.
  • fgets() — lee una línea.
  • file_get_contents() — la forma más sencilla de leer todo el archivo completo.
<?php// Lectura de todo el archivo$content = file_get_contents("example.txt");echo $content;

// Lectura línea por línea$file = fopen("example.txt", "r");while (($line = fgets($file)) !== false) { echo $line . "<br>";}fclose($file);?>


Escritura en un archivo: fwrite y file_put_contents

La escritura de datos se realiza con fwrite() (requiere un descriptor abierto) o file_put_contents() (una sola línea y el archivo está escrito).

<?php// Escritura rápidafile_put_contents("log.txt", "Nueva entrada", FILE_APPEND);

// Escritura con fwrite$file = fopen("config.ini", "w");fwrite($file, "db_host=localhost");fwrite($file, "db_user=root");fclose($file);?>


Trabajo con directorios

Crear, eliminar y navegar por carpetas es otra parte importante del trabajo con el sistema de archivos en PHP.



Creación y eliminación de carpetas: mkdir y rmdir

La función mkdir() crea un nuevo directorio. El tercer parámetro recursive permite crear carpetas anidadas con un solo comando.

<?php// Creamos una carpetamkdir("uploads", 0777);

// Creamos carpetas anidadas (2025 → 03 → images)mkdir("uploads/2025/03/images", 0777, true);

// Eliminamos una carpeta vacíarmdir("uploads/temp");?>


Verificación de existencia de archivos y carpetas

Antes de realizar operaciones, siempre es útil verificar si existe un archivo o directorio. Para ello se utilizan las funciones file_exists(), is_file() e is_dir().

<?php$path = "data/config.php";if (file_exists($path)) {    echo "El archivo o carpeta existe";}if (is_file($path)) {    echo "Es un archivo";}if (is_dir("uploads")) {    echo "Es un directorio";}?>


Obtener la lista de archivos en un directorio

La función scandir() devuelve un array con todos los elementos de la carpeta. Y glob() permite filtrar por máscara (por ejemplo, solo imágenes).

<?php// Todos los archivos y carpetas$items = scandir("uploads");print_r($items);

// Solo archivos PHP$phpFiles = glob("*.php");for

Blogs

Book Recommendations