Escritura de archivos de texto en PHP usando la función nativa fwrite. Cómo y para qué usar fwrite.
Siguiendo con la gestión de archivos por medio de PHP, en este artículo veremos los pasos elementales para la creación y escritura de un archivo texto por medio de esta tecnología de lado servidor. Tras haber visto como funciona la lectura secuencial de un archivo, podemos imaginar que escribir sobre éste no debe de resultar mucho más complicado.
Para qué podemos necesitar escribir archivos de texto en el servidor
las posibilidades que la lectura y escritura de archivos son realmente sorprendentes. Sin ir más lejos, y guardando las distancias, escribir y leer archivos puede en cierta manera sustituir muy primariamente a una base de datos. En efecto, si por diversas razones (hosting, presupuesto, conocimientos...) nos resulta difícil la puesta en marcha de una base de datos elemental, siempre podremos solventar las necesidades de persistencia de la información almacenando nuestros datos en archivos que luego podrán ser leídos. Por supuesto, este método no tiene la suficiente potencia o versatilidad y sólo es valido para poca cantidad de datos y donde no necesitamos grandes dosis de procesamiento sobre los datos almacenados.
Podemos pensar también en otras utilidades como crear documentos dinámicos a partir de datos introducidos en un formulario: cartas, páginas HTML y otros.
Otro ejemplo particularmente práctico es la creación dinámica de archivos que nos ahorren recursos de servidor. Imaginemos que tenemos una página, o archivo, en nuestro sitio que carga muy frecuentemente y que realiza constantemente llamadas a bases de datos o ejecuta scripts medianamente largos. Si el contenido que estamos mostrando es el mismo para todos los usuarios y no tiene necesidad de ser actualizado constantemente, podemos guardarlo una vez ha sido procesado, a modo de caché. Esto lo implementaríamos con un script accesorio que ejecute una única vez el script principal y que almacene su resultado en forma de archivo de texto, o con contenido HTML, que será en realidad el que mostraremos a nuestros visitantes. De esta forma, evitamos por una parte la ejecución masiva de un mismo script con el consiguiente ahorro de recursos y por otra automatizamos la actualización de una determinada página o sección ejecutando periódicamente el script accesorio.
Cómo se escribe un archivo de texto en el servidor con PHP
La escritura de archivos pasa, como es de esperar, por la previa apertura de archivo en un modo apropiado. Una vez abierto, el paso siguiente será introducir por medio de la función fwrite
, o su alias fputs
, la cadena que deseamos incluir en nuestro archivo.
Para ejemplificar esta nueva función de escritura y combinarla con la de lectura, fgets
, os proponemos este contador inspirado en una nota de la página oficial de PHP:
<?php
function incremento_contador($archivo) {
// $archivo contiene el numero que actualizamos
$contador = 0;
// Abrimos el archivo y leemos su contenido
$fp = fopen($archivo,"r");
$contador = fgets($fp, 26);
fclose($fp);
// Incrementamos el contador
++$contador;
// Actualizamos el archivo con el nuevo valor
$fp = fopen($archivo,"w+");
fwrite($fp, $contador, 26);
fclose($fp);
echo "Este script ha sido ejecutado $contador veces";
}
?>
Como en otros ejemplos, el script es expresado en forma de función para que sea más sencilla su reutilización. Las etapas que llevamos a cabo son verdaderamente cortas y comprensibles:
- Iniciamos nuestra variable contador.
- Abrimos el archivo en modo lectura y extraemos el valor actual del contador leyendo la primera y única línea.
- Cerramos el archivo.
- Aumentamos de una unidad el valor de contador.
- Abrimos el archivo y lo sobrescribimos (modo +w) con el valor contador modificado.
Ni que decir tiene que para que este tipo de scripts funcionen, el archivo al que queremos acceder ha de estar autorizado para lectura y escritura.
La función fwrite
puede ser utilizada también para enviar datos en otros tipos de aperturas como son las de sockets o de programas. Pero esto ya es otra historia...
De momento lo dejamos por aquí, esperando que te haya resultado útil este ejemplo de escritura de archivos con PHP. En el siguiente artículo vamos a seguir aprendiendo a usar el sistema de archivos del servidor, explicando cómo trabajar con directorios.
Rubén Alvarez
Rubén es doctor en química y programador principalmente en sus ratos libres con...