Resumen: Entrega nº37 del Tutorial básico del programador web: PHP desde cero.
Codificación aprenderaprogramar.com: CU00837B 

 

 

LECTURA Y ESCRITURA DE ARCHIVOS DE TEXTO CON PHP.

En esta ocasión veremos unos ejemplos prácticos de lectura y escritura de ficheros de texto usando PHP. El primer lugar, debemos crear un archivo de texto (con cualquier editor, notepad por ejemplo, aunque también puede valer el bloc de notas de Windows) con algunas líneas de texto.

 

 

LECTURA DE FICHEROS

Para leer un archivo de texto línea a línea en PHP vamos a utilizar la función fgets(). Por ejemplo si queremos leer línea por línea el archivo 'archivo.txt' que se encuentra ubicado en la misma carpeta que el archivo 'leer.php', tenemos que escribir en el archivo PHP:

<?php //Ejemplo aprenderaprogramar.com

$file = fopen("archivo.txt", "r");

while(!feof($file)) {

echo fgets($file). "<br />";

}

fclose($file);

?>

 

 

Como podemos observar, lo primero que debemos hacer es abrir el fichero 'archivo.txt' y luego ir leyendo línea a línea hasta llegar al final. Recordemos que “r” es el modo de apertura que abre el archivo sólo para lectura. La lectura comienza al inicio del archivo. Después cerramos el fichero.

Con esto conseguiremos mostrar por pantalla el contenido del fichero 'archivo.txt' tal y como podemos ver en la siguiente imagen de ejemplo.

 

 

El contenido del fichero de texto “archivo.txt” se supone que era el siguiente:

Prueba de escritura de aprenderaprogramar.com

esto es una linea de texto

esto es una linea de texto

esto es una linea de texto

esto es una linea de texto

esto es una linea de texto

fin de la prueba de aprenderaprogramar.com

 

 

Lo que hemos hecho con nuestro pequeño programa es ir extrayendo líneas mientras no se detecta el final del fichero (feof). La condición while(!feof($file)) también podría haberse escrito de esta otra manera: while(feof($file)==false), con lo que obtendríamos el mismo resultado.

 

 

ESCRITURA DE FICHEROS

Para escribir un archivo de texto en PHP podemos utilizar la función fwrite(). Por ejemplo si queremos escribir línea por línea un archivo 'archivo.txt' que se encuentre ubicado en la misma carpeta que el archivo 'escribir.php', tenemos que escribir en el archivo PHP:

<?php //Ejemplo aprenderaprogramar.com, archivo escribir.php

$file = fopen("archivo.txt", "w");

fwrite($file, "Esto es una nueva linea de texto" . PHP_EOL);

fwrite($file, "Otra más" . PHP_EOL);

fclose($file);

?>

 

 

Nota: PHP_EOL (end of line) introduce un salto de línea en PHP. Mediante la concatenación con un punto forzamos el salto de línea después del texto introducido.

Una vez escribimos en nuestro navegador la ruta del fichero escribir.php se ejecuta el código asociado. Después de la ejecución, podemos ver el fichero creado con un editor de texto cualquiera y observaremos el siguiente contenido:

 

 

Tener en cuenta que el modo de apertura de archivo que hemos usado es w. Si recordamos el significado de este modo:

w: Abre el archivo sólo para escritura. La escritura comienza al inicio del archivo, y elimina el contenido previo del archivo. Si el archivo no existe, intenta crearlo.

 

 

AÑADIR CONTENIDO A UN FICHERO DE TEXTO

A veces no queremos reemplazar el contenido que exista en un fichero de texto, sino añadir un contenido adicional al final de lo que ya exista en el mismo. Vamos a ver cómo podemos hacerlo.

A modo de ejemplo añadiremos unas líneas de texto al final del fichero anteriormente escrito:

<?php //Ejemplo aprenderaprogramar.com

$file = fopen("archivo.txt", "a");

fwrite($file, "Añadimos línea 1" . PHP_EOL);

fwrite($file, "Añadimos línea 2" . PHP_EOL);

fclose($file);

?>

 

 

Tener en cuenta que el modo de apertura de archivo que hemos usado es a. Si recordamos el significado de este modo:

a: Abre el archivo para sólo escritura. La escritura comenzará al final del archivo sin eliminar el contenido previo existente. Si el fichero no existe se intenta crear.

 

Ahora podemos ver el fichero creado con un editor de texto cualquiera y observaremos el siguiente contenido (no se ha reemplazado el contenido existente, sino que se ha ampliado):

 

 

Observamos que hemos añadido las dos nuevas líneas al final del archivo.

 

 

EJERCICIO

Crea el siguiente código PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirNumerosMod que reciba dos parámetros: un array de valores enteros y una cadena de texto que puede ser "sobreescribir" ó "ampliar". La función debe proceder a: escribir cada uno de los números que forman el contenido del array en una línea de un archivo datosEjercicio.txt usando el modo de operación que se indique con el otro parámetro. Si el archivo no existe, debe crearlo.

Ejemplo: El array que se pasa es $numeros = array(5, 9, 3, 22); y la invocación que se utiliza es escribirNumerosMod($numeros, "sobreescribir"); En este caso, se debe eliminar el contenido que existiera previamente en el archivo y escribir en él 4 líneas, cada una de las cuales contendrá los números 5, 9, 3 y 22.

b) Una función (tipo procedimiento, no hay valor devuelto) denominada leerContenidoFichero que reciba como parámetro la ruta del fichero y muestre por pantalla el contenido de cada una de las líneas del fichero.

c) Crea código php donde a través de la función escribirNumerosMod escribas en el fichero los números 2, 8, 14. Luego, mediante la función leerContenidoFichero muestra el contenido del fichero. Ahora con la función escribirNumerosMod amplía el contenido del fichero y añádele los números 33, 11 y 16. Muestra nuevamente el contenido del fichero por pantalla. Finalmente, escribe el fichero pasándole un array con los número 4, 99, 12 y parámetro <<sobreescribir>> para eliminar los datos que existieran previamente. Muestra el contenido del fichero por pantalla y un mensaje de despedida.

 

Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Descargar archivo: