Trabajo con el sistema de archivos en PHP: ejemplos prácticos y consejos

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

Trabajo con el sistema de archivos en PHP: de lo básico a proyectos reales

\n\n

Trabajar con el sistema de archivos es una de las tareas clave de cualquier desarrollador web. En PHP, existe un potente conjunto de funciones integradas que permiten crear, leer, editar y eliminar archivos, así como gestionar directorios. En este artículo, analizaremos ejemplos prácticos que te ayudarán a dominar el trabajo con archivos en PHP y aplicar estos conocimientos en proyectos reales.

\n\n

Independientemente de si estás creando un sistema de registro, un cargador de archivos o simplemente guardando datos de usuarios, comprender los fundamentos del sistema de archivos en PHP es una habilidad obligatoria. Pasemos a la práctica.

\n\n

Funciones principales para trabajar con archivos

\n\n

PHP proporciona varias formas de interactuar con archivos. Las más populares son el uso de fopen, fwrite, fread y las funciones de alto nivel file_get_contents y file_put_contents. Veámoslas con ejemplos.

\n\n

Creación y escritura en un archivo

\n\n

Para crear un archivo y escribir en él, usa la función fopen con el modo 'w' (escritura con borrado) o 'a' (añadir al final).

\n\n
<?php\n$filename = 'log.txt';\n$file = fopen($filename, 'w');\n\nif ($file) {\n    fwrite($file, "Línea 1: Escritura en el archivo\\n");\n    fwrite($file, "Línea 2: Otra escritura\\n");\n    fclose($file);\n    echo "Archivo creado y escrito exitosamente.";\n} else {\n    echo "Error al abrir el archivo.";\n}\n?>
\n\n

Si necesitas escribir datos rápidamente sin gestionar el puntero, usa file_put_contents:

\n\n
<?php\n$data = "Nuevo contenido para el archivo.\\nSegunda línea.";\nfile_put_contents('data.txt', $data);\necho "Datos escritos.";\n?>
\n\n

Lectura de un archivo

\n\n

Para leer un archivo línea por línea, usa fgets en un bucle:

\n\n
<?php\n$file = fopen('log.txt', 'r');\nif ($file) {\n    while (($line = fgets($file)) !== false) {\n        echo $line . "<br>";\n    }\n    fclose($file);\n}\n?>
\n\n

Alternativa: file_get_contents para leer todo el contenido en una cadena:

\n\n
<?php\n$content = file_get_contents('log.txt');\necho nl2br($content);\n?>
\n\n

Verificación de existencia y propiedades de archivos

\n\n

Antes de trabajar con un archivo, es importante asegurarse de que existe y es accesible para lectura o escritura. PHP proporciona las funciones file_exists, is_readable, is_writable y filesize.

\n\n

Ejemplo de verificación de archivo

\n\n
<?php\n$file = 'config.php';\n\nif (file_exists($file)) {\n    echo "El archivo existe.<br>";\n    \n    if (is_readable($file)) {\n        echo "El archivo es legible.<br>";\n        echo "Tamaño del archivo: " . filesize($file) . " bytes.";\n    } else {\n        echo "El archivo existe, pero no es legible.";\n    }\n} else {\n    echo "Archivo no encontrado.";\n}\n?>
\n\n

Verificación del tipo de archivo

\n\n

La función filetype devuelve el tipo de archivo: 'file', 'dir', 'link' y otros.

\n\n
<?php\n$path = 'uploads';\nif (file_exists($path)) {\n    echo "Tipo: " . filetype($path); // mostrará 'dir' si es una carpeta\n}\n?>
\n\n

Gestión de directorios

\n\n

Trabajar con carpetas en PHP no es menos importante. Puedes crear, eliminar y escanear directorios.

\n\n

Creación y eliminación de carpetas

\n\n
<?php\n// Crear carpeta\nif (!file_exists('backup')) {\n    mkdir('backup', 0777, true); // el tercer parámetro true — creación recursiva\n    echo "Carpeta creada.";\n}\n\n// Eliminar carpeta vacía\nif (file_exists('temp')) {\n    rmdir('temp');\n    echo "Carpeta eliminada.";\n}\n?>
\n\n

Escaneo del contenido de un directorio

\n\n

La función scandir devuelve un array con todos los archivos y carpetas

Blogs

Book Recommendations