Curso de PHP. Volumen XX : Manejo básico de ficheros

Escrito por Jalths
Manuales
3

Otra semana más, aquí tenéis nuestro particular curso de PHP. Se acerca el fin de año pero en Redeszone no paramos, hoy toca jugar un poco con PHP.

El pasado Miércoles nos quedamos abriendo ficheros , vamos a ampliar nuestros conocimientos sobre el tema aprendiendo a leer y a escribir archivos.

Vamos primero a ver como se escriben archivos para posteriormente leerlos.

Antes de empezar , es recomendable leer de nuevo el volumen anterior para repasar las formas de apertura con fopen de los ficheros.

Escritura de ficheros.

Para escribir un fichero en PHP, lo primero que necesitamos hacer es abrir el fichero como hacíamos en el volumen anterior.

Una vez abierto, usaremos fputs() que en realidad es un alias de fwrite().

fputs(), recibe como argumentos lo primero el descriptor de fichero devuelto por fopen en la apartura, en segundo lugar recibe la cadena que va a ser escrita, en tercer y ultimo lugar , opcionalmente recibe una cantidad(length) que lo que hace es detener la función cuando se alcance el la cantidad especificada de datos escrita .

Un ejemplo:

Lectura de ficheros

Para leer un fichero , al igual que para escribirlo hay que abrirlo, aunque antes es conveniente comprobar si existe, para ello podemos usar file_exist().

Una vez abierto , vamos a usar fread() para leer los datos contenidos en el fichero.

fread() recibe como argumentos un descriptor de fichero una cantidad a leer. Si se especifica cantidad mayor al tamaño del fichero, generalmente fread() termina de leer en EOF(End of file), aunque también puede parar por otro tipo de eventos que quizá comentemos más adelante en el curso.

Por ultimo decir que la cadena leída es devuelta por fread().

Ejemplo:

Existen otras funciones para leer ficheros como por ejemplo fgetc() que obtiene un carácter desde donde esta situado el puntero del fichero en ese momento, después de leer avanza el puntero.

La función recibe el descriptor de fichero.

Cuestiones relacionadas con la situación del puntero en el fichero.

Como comentamos en el volumen anterior, cuando abrimos un fichero, estamos situando un puntero en un determinado lugar del fichero, y ese puntero será el encargado de decirnos desde donde vamos a empezar a operar sobre el fichero. Es decir desde que parte del fichero vamos a empezar a ejecutar los cambios.

En esta parte del volumen vamos a ver cosas relacionadas con el puntero del fichero y vamos a aprender a movernos con el puntero por el fichero, volver al principio, establecerlo al final etc.

La función de mayor importancia en esta parte del volumen es fseek(), la cual permite situar el puntero en el lugar donde nosotros queramos. La función recibe 3 argumentos que son los siguientes:

El primero es el descriptor de archivo (valor devuelto por fopen()).
El segundo es la cantidad de posiciones que queremos avanzar.
El tercero es la posición desde la que se avanza, pudiendo ser :

SEEK_SET – Inicio de fichero
SEEK_CUR – Posición actual
SEEK_END – Final de fichero

Otra función que nos será útil a la hora de movernos por los ficheros es la función rewind() que sitúa el puntero en el inicio del fichero. La función recibe como argumento el descriptor del fichero.

Ejercicio: Intentad leer a partir del carácter 16 de un texto 5 posiciones, luego leer el carácter 20 usando para moverse por el fichero fseek().

Nota: Si no hacéis el ejercicio realmente no pasa nada, ya que nadie os está evaluando, solo proporcionándoos algo de información, no hay ejemplos de fseek() precisamente para que podáis investigar o preguntar aquí sobre ello mientras hacéis el ejercicio.
Nota2: El fichero tiene que contener mas de 20 caracteres.

Nota3: Importante:En Linux pueden aparecer problemas a la hora de crear/modificar ficheros, si os aparece un error del tipo permiso denegado, tendréis que cambiar los permisos de la carpeta (en la que estáis creando el fichero, generalmente donde estáis haciendo las pruebas) para que “otros” puedan escribir en ella.

Por hoy hemos terminado, la próxima seguiremos con PHP, y antes de empezar el nuevo volumen la solución/ejemplo del ejercicio.


Noticias relacionadas

Comentarios


3 comentarios
  1. Victor 13 Ene, 12 20:17

    Hola, quería haceros una pregunta.

    He visto que este es el último capítulo que habéis sacado del curso de PHP con fecha 29/12 y quería saber si váis a sacar más entradas puesto que me está siendo de mucha ayuda.

    Gracias

    Responder
    0
  2. Jalths 16 Ene, 12 22:23

    Hola Víctor , si vamos a hacer más entradas, el único problema es que en estas fechas siempre surgen retrasos, ya que muchos de los integrantes de Redeszone somos estudiantes y ahora es el periodo de exámenes/prácticas.

    Un saludo.

    Responder
    0
    1. Victor 17 Ene, 12 11:15

      Hola Jalths

      Gracias por tu respuesta.
      Es verdad que ahora es época de exámenes!!!! No me había acordado.

      Pues estaré alerta de cuando volváis a darle caña al tutorial, jejejejeje

      Un saludo.

      Responder
      0