PHP Abrir/Leer/Cerrar Archivo
- Página anterior Archivos en PHP
- Página siguiente Creación/escritura de archivos en PHP
En esta sección, le explicamos cómo abrir, leer y cerrar archivos en el servidor.
PHP Abrir Archivo - fopen()
La mejor manera de abrir un archivo es a través de la función fopen(). Esta función le ofrece más opciones que la función readfile().
En el curso, utilizaremos el archivo de texto "webdictionary.txt":
AJAX = JavaScript Asincrónico y XML CSS = Hojas de Estilo en Cascada HTML = Lenguaje de Marcado de Hipertexto PHP = Preprocesador de Hipertexto PHP SQL = Lenguaje de Consulta Estructurada SVG = Gráficos Vectoriales Escalables XML = Lenguaje de Marcado Extensible
El primer parámetro de fopen() contiene el nombre del archivo que se debe abrir, y el segundo parámetro especifica el modo en el que se debe abrir el archivo. Si la función fopen() no puede abrir el archivo especificado, el siguiente ejemplo generará un mensaje:
Ejemplo
<?php $myfile = fopen("webdictionary.txt", "r") or die("No se puede abrir el archivo!"); echo fread($myfile, filesize("webdictionary.txt")); fclose($myfile); ?>
Consejo:A continuación, aprenderemos sobre las funciones fread() y fclose().
El archivo se abrirá con uno de los siguientes modos:
Modo | Descripción |
---|---|
r | Abrir archivo para lectura. El puntero de archivo comienza al principio del archivo. |
w | Abrir archivo para escritura. Elimina el contenido del archivo o crea un nuevo archivo si no existe. El puntero de archivo comienza al principio del archivo. |
a | Abrir archivo para escritura. Los datos existentes en el archivo se mantendrán. El puntero de archivo comienza al final del archivo. Crea un nuevo archivo si no existe. |
x | Crear archivo nuevo para escritura. Devuelve FALSE y un error si el archivo ya existe. |
r+ | Abrir archivo para lectura/escritura, el puntero de archivo comienza al principio del archivo. |
w+ | Abrir archivo para lectura/escritura. Elimina el contenido del archivo o crea un nuevo archivo si no existe. El puntero de archivo comienza al principio del archivo. |
a+ | Abrir archivo para lectura/escritura. Los datos existentes en el archivo se mantendrán. El puntero de archivo comienza al final del archivo. Crea un nuevo archivo si no existe. |
x+ | Crear un archivo nuevo para lectura/escritura. Devuelve FALSE y un error si el archivo ya existe. |
PHP leer archivo - fread()
La función fread() lee el archivo abierto.
El primer parámetro de fread() contiene el nombre del archivo que se debe leer, y el segundo parámetro especifica la cantidad máxima de bytes que se deben leer.
El siguiente código PHP lee todo el archivo "webdictionary.txt" hasta el final:
fread($myfile, filesize("webdictionary.txt"));
PHP cerrar archivo - fclose()
La función fclose() se utiliza para cerrar archivos abiertos.
Notas:Es una buena práctica cerrar todos los archivos después de usarlos. No quieres que los archivos abiertos ocupen recursos del servidor.
fclose() necesita el nombre del archivo (o la variable que contiene el nombre del archivo) a cerrar:
<?php $myfile = fopen("webdictionary.txt", "r"); // código que debe ejecutarse... fclose($myfile); ?>
PHP leer archivo de una línea - fgets()
La función fgets() se utiliza para leer una línea de un archivo.
El siguiente ejemplo muestra la primera línea del archivo "webdictionary.txt":
Ejemplo
<?php $myfile = fopen("webdictionary.txt", "r") or die("No se puede abrir el archivo!"); echo fgets($myfile); fclose($myfile); ?>
Notas:Después de llamar a la función fgets(), el puntero de archivo se mueve a la siguiente línea.
Comprobación de End-Of-File en PHP - feof()
La función feof() verifica si se ha alcanzado el "final del archivo" (EOF).
feof() es muy útil para recorrer datos de longitud desconocida.
El siguiente ejemplo lee el archivo "webdictionary.txt" línea por línea hasta el final del archivo:
Ejemplo
<?php $myfile = fopen("webdictionary.txt", "r") or die("No se puede abrir el archivo!"); // Salida de una sola línea hasta el final del archivo while(!feof($myfile)) { echo fgets($myfile) . "<br>"; } fclose($myfile); ?>
Lectura de un solo carácter en PHP - fgetc()
La función fgetc() se utiliza para leer un solo carácter de un archivo.
El siguiente ejemplo lee el archivo "webdictionary.txt" carácter por carácter hasta el final del archivo:
Ejemplo
<?php $myfile = fopen("webdictionary.txt", "r") or die("No se puede abrir el archivo!"); // Salida de un solo carácter hasta el final del archivo while(!feof($myfile)) { echo fgetc($myfile); } fclose($myfile); ?>
Notas:Después de llamar a la función fgetc(), el puntero de archivo se mueve al siguiente carácter.
Manual de referencia de Filesystem en PHP
Para obtener el manual de referencia completo del sistema de archivos en PHP, visite Manual de referencia de Filesystem en PHP.
- Página anterior Archivos en PHP
- Página siguiente Creación/escritura de archivos en PHP