Revista Informática

PHP desde Cero: Archivos

Publicado el 14 febrero 2014 por Codehero @codeheroblog

Abrir un Archivo

La primera función que vamos a estudiar sera fopen( $ruta, $tipo_apertura ), con esta se pueden abrir y crear archivos para su lectura. Esta función recibe como parámetros la ruta del archivo que se desea abrir y el tipo de apertura que se va a realizar, estos tipos los comentaremos más adelante. La función retorna un identificador del archivo con el cual después podemos leerlo o escribir en el.

Veamos ahora los principales tipos de apertura que tiene PHP:

  • ‘r’: Abre el archivo sólo para lectura. Se comienza a leer al principio del archivo.
  • ‘r+’: Abre el archivo para lectura y escritura. Se comienza a leer al principio del archivo.
  • ‘w’: Abre el archivo sólo para escritura. Borra todo y se escribe desde el principio. Si el fichero no existe entonces lo intenta crear.
  • ‘w+’: Abre el archivo para lectura y escritura. Se comienza a leer desde el principio y borra todo si se escribe algo. Si el fichero no existe entonces lo intenta crear.
  • ‘a’: Abre el archivo sólo para escritura. El escribe al final del archivo y si no existe entonces se crea.
  • ‘a+’: Abre el archivo para lectura y escritura. Se comienza a escribir al final del archivo y si no existe se crea.

Ahora vamos a observar un ejemplo para entender como se utiliza la función fopen().

$identificador = fopen('archivo.txt', 'r'); // se abre el archivo solo para lectura y se comienza a leer desde el principio // esto se establece con el tipo de apertura r

123 $identificador=fopen('archivo.txt','r');// se abre el archivo solo para lectura y se comienza a leer desde el principio// esto se establece con el tipo de apertura r


Cerrar un Archivo

Luego de abrir y manipular el contenido del archivo, lo cual veremos más adelante, se debe cerrar el archivo. Esto se logra con la función fclose() y se pasa como parámetro el identificador del archivo. Veamos el ejemplo de esto:

$identificador = fopen('archivo.txt', 'r'); // se lleva acabo la manipulación y edición del archivo // por último se cierra fclose($identificador);

123456 $identificador=fopen('archivo.txt','r'); // se lleva acabo la manipulación y edición del archivo // por último se cierrafclose($identificador);


Leer un Archivo

Ahora que sabemos como abrir y cerrar un archivo vamos a pasar a leerlo. Para leer archivos con PHP existen varias funciones pero en esta ocasión vamos a ver fgets() y fgetc(). La primera sirve para leer linea por linea y la segunda sirve para leer caracteres por carácter el archivo. En las dos funciones se pasa como parámetro el identificador del archivo y se recibe como respuesta la linea o el carácter leído. Para leer un archivo también necesitamos hacer uno de la función feof(), la cual sirve para verificar si hemos llegado al final del archivo o no y recibe como parámetro el identificador del archivo. Cuando hemos llegado al final del archivo no debemos seguir leyendo con las funciones fgets o fgetc. Veamos un ejemplo de como se implementan estas funciones:

Hay que recordar que debemos colocar en fopen() un modo que permita leer el archivo, como por ejemplo ‘r’.

// abrimos el archivo $identificador = fopen("archivo.txt", "r"); // dentro de un while vamos preguntando si hemos llegado al final del archivo // en caso de que no haber llegado al final entonces se lee otra linea // si se llego al final entonces no se lee nada y se cierra el archivo while( !feof($identificador) ){ $linea = fgets($identificador). "<br />"; echo $linea; } fclose($identificador);

123456789101112131415 // abrimos el archivo$identificador=fopen("archivo.txt","r"); // dentro de un while vamos preguntando si hemos llegado al final del archivo// en caso de que no haber llegado al final entonces se lee otra linea// si se llego al final entonces no se lee nada y se cierra el archivo while(!feof($identificador)){   $linea=fgets($identificador)"<br />";  echo$linea; } fclose($identificador);

// abrimos el archivo $identificador = fopen("archivo.txt", "r"); // dentro de un while vamos preguntando si hemos llegado al final del archivo // en caso de que no haber llegado al final entonces se lee otro carácter // si se llego al final entonces no se lee nada y se cierra el archivo while( !feof($identificador) ){ $caracter = fgetc($identificador). "<br />"; echo $caracter; } fclose($identificador);

123456789101112131415 // abrimos el archivo$identificador=fopen("archivo.txt","r"); // dentro de un while vamos preguntando si hemos llegado al final del archivo// en caso de que no haber llegado al final entonces se lee otro carácter// si se llego al final entonces no se lee nada y se cierra el archivo while(!feof($identificador)){   $caracter=fgetc($identificador)"<br />";  echo$caracter; } fclose($identificador);


Escribir un Archivo

Por últimos vamos a ver como podemos escribir información en un archivo, para esto hacemos uso de la función fwrite(). Esta función recibe como parámetros el identificador del archivo en el cual deseamos escribir y el texto o contenido a escribir. Como respuesta devuelve el número de bytes escritos o False si se produjo un error al escribir. Veamos un ejemplo:

$identificador = fopen('archivo.txt', 'a'); // write escribe de manera continua en el archivo y no hace brinco de linea por si solo fwrite($identificador, 'Primeras palabras '); // para ejecutar un brinco de linea se puede usar la constante PHP_EOL(php_end_of_line) fwrite($identificador, 'Segundas palabras'.PHP_EOL); fwrite($identificador, 'Nueva linea'); fclose($identificador);

1234567891011 $identificador=fopen('archivo.txt','a'); // write escribe de manera continua en el archivo y no hace brinco de linea por si solofwrite($identificador,'Primeras palabras '); // para ejecutar un brinco de linea se puede usar la constante PHP_EOL(php_end_of_line)fwrite($identificador,'Segundas palabras'PHP_EOL); fwrite($identificador,'Nueva linea'); fclose($identificador);


Conclusión

Hemos aprendido las funciones básicas para el manejo de archivos, prueba utilizando los diferentes modos de apertura de los archivos y así quedara claro para que sirve cada uno. Cualquier duda o comentario estaré atengo a la sección de comentarios.


Volver a la Portada de Logo Paperblog

Dossier Paperblog