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

 

 

INTRODUCCIÓN AL MANEJO DE ARCHIVOS CON PHP.

Cuando necesitamos crear, guardar, leer o escribir archivos en la creación de sitios web, el manejo de éstos se convierte en una prioridad. Para ello, vamos a ver una serie de funciones y algunos ejemplos para familiarizarnos con el manejo de archivos a nivel básico en php.

 

 

FUNCIÓN FOPEN

La función fopen() sirve para abrir ficheros (archivos). Su sintaxis general:

<?php //Ejemplo aprenderaprogramar.com

$fp = fopen(fichero, modoDeApertura);

?>

 

 

Donde $fp es el descriptor o identificador del fichero abierto que necesitaremos más tarde.

fichero puede ser un archivo de texto, un archivo con extensión .php, o incluso la URL de una página web (por ejemplo http://www.paginaweb.com/). “Abrir” una web con fopen() puede ser muy útil cuando queremos comprobar si la web existe, o si está activa.

Si fichero empieza con "http://", se abre una conexión hacia la web especificada. Siempre debe ponérsele una barra ( / ) al final.

Si fichero empieza con “ftp://", se abre una conexión al servidor especificado.

Si fichero no empieza con ninguna de las cosas anteriormente dichas, se abre una conexión "directa" con el archivo especificado. Si no existe el archivo o dirección especificadas, se devuelve un error.

Hay distintos modos de apertura de archivos, vamos a ver los más habituales.

A la hora de abrir un archivo, hay que saber de qué forma queremos abrirlo. Podemos abrirlo para escritura y lectura, pero de distintas formas:

Modo

Observaciones

r

Abre el archivo sólo para lectura. La lectura comienza al inicio del archivo.

r+

Abre el archivo para lectura y escritura. La lectura o escritura comienza al inicio del archivo.

w

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

w+

Abre el archivo para escritura y lectura. La lectura o escritura comienza al inicio del archivo, y elimina el contenido previo. Si el archivo no existe, intenta crearlo.

a

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

a+

Abre el archivo para lectura y escritura. La lectura o escritura comenzará al final del fichero, sin afectar al contenido previo. Si el fichero no existe se intenta crear.

 

 

Ejemplos

<?php //Ejemplo aprenderaprogramar.com

$fp = fopen("/apr2/fichero.txt", "r");

$fp = fopen("/apr2/fichero2.txt", "w");

$fp = fopen("http://www.aprenderaprogramar.com/texto.txt", "a+");

$fp = fopen("ftp://ftp.elmundo.es/fichero.txt", "w");

?>

 

Ahora bien, con esta simple instrucción sólo tendremos el archivo abierto para leer, escribir, o leer y escribir. Pero ahora tendremos que hacer uso de las otras instrucciones para escribir o recuperar los datos que estimemos oportunos.

 

 

FUNCIÓN FCLOSE

La función fclose(identificadorDelFichero) cierra un archivo abierto.

Esta función debe ser utilizada después de abrir y manipular el archivo como veremos en los siguientes ejemplos.

 

 

FUNCIONES FGETS Y FEOF

La función fgets() recupera el contenido de una línea de un archivo. Su sintaxis general es:

<?php

//Ejemplo aprenderaprogramar.com

fgets(descriptorDelFichero);

?>

 

 

Ejemplo

<?php

// Ejemplo aprenderaprogramar.com

// Leemos la primera línea de fichero.txt

// fichero.txt tienen que estar en la misma carpeta que el fichero php

// fichero.txt es un archivo de texto normal creado con notepad, por ejemplo.

$fp = fopen("fichero.txt", "r");

$linea = fgets($fp);

fclose($fp);

?>

 

 

Ahora bien, con esto sólo leeremos la primera línea del fichero de texto, si quisiéramos leer línea a línea hasta el final necesitaríamos el uso de un bucle while, por ejemplo.

<?php // Ejemplo aprenderaprogramar.com

// Iremos leyendo línea a línea del fichero.txt hasta llegar al fin (feof($fp))

// fichero.txt tienen que estar en la misma carpeta que el fichero php

// fichero.txt es un archivo de texto normal creado con notepad, por ejemplo.

$fp = fopen("fichero.txt", "r");

while(!feof($fp)) {

$linea = fgets($fp);

echo $linea . "<br />";

}

fclose($fp);

?>

 

 

Esto nos mostrará el contenido del fichero de texto línea a línea. Comprobarás que hemos incluido una nueva función denominada feof (que viene significando algo así como file end of file o “marca de final de archivo”). La sintaxis general para esta función es: feof (identificadorDelArchivo)

La función feof nos devuelve true cuando hemos llegado al final de archivo y false si no lo hemos alcanzado todavía. La condición while (!feof($fp)) podríamos haberla escrito también de la siguiente manera: while (feof($fp)==false) . Esta sintaxis es equivalente, puedes utilizar la que prefieras, pero debes acostumbrarte a entender ambas formas de escritura.

Finalmente, fíjate como una vez hemos de terminado de operar con el fichero escribimos la instrucción fclose(identificadorDelFichero) para cerrar la conexión, cosa que debemos hacer siempre.

 

 

FUNCIÓN FPUTS

La función fputs() escribe una línea en un archivo. Su sintaxis general es:

<?php //Ejemplo aprenderaprogramar.com

fputs(descriptorDelFichero, cadena);

?>

 

 

Ejemplo

<?php // Ejemplo aprenderaprogramar.com

// Escribimos una primera línea en fichero.txt

// fichero.txt tienen que estar en la misma carpeta que el fichero php

$fp = fopen("fichero.txt", "w");

fputs($fp, "Prueba de escritura aprenderaprogramar.com");

fclose($fp);

?>

 

 

Fíjate que al realizar la apertura del fichero en modo w, si el fichero no existe, será creado. Fíjate también como una vez hemos de terminado de operar con el fichero escribimos la instrucción fclose(identificadorDelFichero) para cerrar la conexión, cosa que debemos hacer siempre.

Si ahora abrimos el fichero con algún editor de textos como Notepad, Bloc de notas o cualquier otro, veremos lo siguiente:

 

 

EJERCICIO

Crea las siguientes funciones en PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirTresNumeros que reciba tres números enteros como parámetros y proceda a escribir dichos números en tres líneas en un archivo denominado datosEjercicio.txt. Si el archivo no existe, debe crearlo.

b) Una función denominada obtenerSuma (tipo función, devolverá un valor numérico) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva la suma de todos esos números.

c) Una función denominada obtenerArrNum (tipo función, devolverá un array de valores numéricos) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva un array cuyo índice 0 contendrá el número existente en la primera línea, cuyo índice 1 contendrá el número existente en la segunda línea y así sucesivamente.

d) Crea código php donde a través de la función escribirTresNumeros escribas en el fichero los números 2, 8, 14. Luego, mediante la función obtenerSuma muestra por pantalla el resultado de sumar los números existentes en el archivo. Finalmente, mediante la función obtenerArrNum obtén el array, recórrelo y muestra cada uno de los elementos del array.

 

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: