php

Escribir archivo de texto con PHP

En este post te voy a mostrar a escribir o guardar datos en un archivo de texto usando PHP.

Veremos dos maneras de escribir a un archivo de texto: usando file_put_contents y combinando las funciones de fopen, fwrite y fclose.

También veremos cómo adjuntar o remplazar el contenido del archivo al guardar.

Aunque algunos archivos de texto tienen la extensión txt, pueden existir otros del mismo tipo con diferente extensión (por ejemplo, un ini) o incluso sin extensión; pero lo que realmente importa es el contenido.

Nota: en artículos anteriores te enseñé a leer archivos de texto con PHP.

Escribir fichero de PHP con fwrite

Comencemos viendo cómo escribir una simple cadena dentro de un archivo. Se obtiene un gestor del archivo con fopen; se escribe con fwrite (primer argumento es el gestor, el segundo son los datos) y finalmente se cierra el archivo con fclose.

See the gist on github.

En este caso el archivo fue creado (si ya existiera no pasa nada malo) y sobrescrito.

Puedes probar el código aquí.

Sintaxis de fopen

La función fopen recibe el nombre del archivo y el modo de apertura como segundo argumento.

El modo a abre el archivo para escritura, y no sobrescribe el contenido, sino que lo adjunta al existente.

En cambio, el modo w abre el archivo para escritura y sobrescribe el contenido ya existente.

Existen otros modos de apertura.

Escribir archivo adjuntando datos

Veamos cómo escribir a un archivo de texto con PHP pero sin sobrescribir los datos ya existentes:

See the gist on github.

En este caso estamos abriendo el archivo en modo a.

Nota: si quieres agregar nuevas líneas, simplemente concatena el mensaje con PHP_EOL o con un \n.

Prueba el código aquí.

Otro ejemplo de fwrite

Veamos otro ejemplo en donde llamamos a fwrite varias veces.

See the gist on github.

Puedes probar el código aquí.

Función file_put_contents

Una función muy útil a la hora de querer escribir datos en un archivo con PHP es file_put_contents, que es como combinar fopen, fwrite y fclose.

La sintaxis es:

file_put_contents($nombreDeArchivo, $datos, $banderas, $gestor);

Los últimos dos argumentos son opcionales.

Las banderas son unas constantes que veremos en el siguiente ejemplo; y el gestor es un posible gestor obtenido con fopen en caso de que lo tengamos.

Veamos un ejemplo:

See the gist on github.

Prueba el ejemplo aquí.

Esta función es más corta y sencilla de usar.

Por cierto, así como lo estamos usando, el contenido del archivo será sobrescrito.

Usar file_put_contents para adjuntar contenido

¿Recuerdas las banderas? bueno, existe una que se llama FILE_APPEND y sirve para adjuntar los datos en lugar de sobrescribirlos.

Modifiquemos nuestro ejemplo:

See the gist on github.

Como ves, le estoy pasando la bandera de FILE_APPEND en el tercer argumento. Ahora los datos serán adjuntados.

Recuerda que si quieres separarlos por líneas puedes usar PHP_EOL o un salto de línea con \n.

Más banderas

Hay otras dos banderas para la función de file_put_contents:

  • FILE_USE_INCLUDE_PATH: Buscar el archivo en la ruta de includes, es decir, si no se encuentra en la misma ruta del script (y no se especifica la ruta absoluta) entonces se busca en la include path de php.
  • LOCK_EX: obtener un acceso exclusivo, es decir, no dejar que nadie más pueda modificar el archivo al mismo tiempo que nosotros.

Para pasarlas a todas usa el operador OR. Por ejemplo:

file_put_contents($archivo, $datos, FILE_APPEND | LOCK_EX);

Conclusión

Con estas dos funciones podemos escribir archivos en PHP. Recomiendo el uso de file_put_contents para cuando es una escritura rápida, pero si se trata de miles de datos o datos en un ciclo es mejor usar fwrite.

Aquí dejo un enlace al manual de PHP.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

14 horas hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

14 horas hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

17 horas hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

21 horas hace

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

5 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

6 días hace

Esta web usa cookies.