Traductor




Como leer en los ficheros con PHP

Anteriormente ya vimos como abrir y cerrar ficheros con algunas funciones que nos proporciona PHP.
Ahora es momento de ver que podemos hacer desde que se abre hasta que se cierra el fichero.
Para comenzar vamos a considerar la lectura de un fichero.
  • Cree una carpeta en su directorio de localhost.
  • Dentro de ella cree un fichero de texto plano, es decir uno con la extensión (.txt)
    • En el interior de este fichero, escriba únicamente una frase, lo que usted guste.
  • Para leer todo el contenido de un fichero, de modo indiscriminado podemos usar la función fpassthru().
    • Esta función recibe como argumento, el manejador con el que se ha abierto el fichero, y vuelca en la salida estándar el contenido del mismo en el navegador.
  • Dentro de la carpeta que creeo en localhost, cree un fichero (.php) con el siguiente código.
<?php
 //Almacenamos el identificador del fichero en la variable $manejadorFichero
 //Abrimos dicho fichero solo para lectura
 $manejadorFichero1= fopen("lecturaSimple.txt","r");
 //Leemos todo el contenido del fichero
 fpassthru ($manejadorFichero1);
 fclose ($manejadorFichero1);
?>
Nuestro directorio quedaría mas o menos así:

Observe la última línea de código, con ella cerramos nuestro fichero, recuerde que es indispensable este paso, de lo contrario tendremos muchos problemas en el futuro.
Cargue el script en su navegador, y verá como en el se muestra la frase que hemos colocado dentro de nuestro archivo o fichero de texto llamado (lecturaSimple.txt).

Nota:
  • La función fpassthru() tiene un uso adicional.
  • Si le asignamos la salida a una variable, dicha variable nos devuelve el número de caracteres que contiene dicho fichero.
  • Veamos un ejemplo
<?php
// Se define el salto de línea.
    define ("salto","<br>\n");
// Se abre el fichero para lectura.
    $manejadorFichero1=fopen ("lecturaSimple.txt","r");
    echo ("El contenido del fichero es: <b>");
/* Se muestra el contenido del fichero y se
asigna el total de caracteres a una variable. */
    $caracteres=fpassthru ($manejadorFichero1);
    echo ("</b>".salto."El total de caracteres es de: <b>");
// Se muestra el total de caracteres.
    echo ($caracteres."</b>".salto);
    fclose ($manejadorFichero1);
?>
PHP nos ofrece otras funciones destinadas a la lectura de un fichero.
  • La función fread() permite leer un determinado número de caracteres
    • Esta función recibe dos argumentos.
      • El primer es el identificador o manejador del fichero.
      • El segundo es el número de caracteres que deseamos leer
    • Esta función devuelve una parte del fichero de tantos bytes de longitud como hayamos especificado en el segundo argumento.
    • El resultado de dicha función debe ser asignado a una variable para luego poder mostrarlo en la página.
  • La función fread() trabaja con un puntero que se posiciona en el fichero, de modo que al abrirlo apunta al principio del mismo.
  • Al ejecutarse la función, el puntero de desplaza tantos caracteres como se hayan leído.
  • Así pues, si el segundo argumento de la función es "10", el puntero quedará posicionado en el caracter "11". Si se vuelve a ejecutar la función, se leerá a partir de la posición 11, mas no desde el comienzo como la primera vez.
  • También puede ocurrir que se llegue al final del fichero. Para esto, todos los ficheros tienen una marca llamada EOF (End Of File), que señala esta circunstancia. Si la función fread() debe leer 20 caracteres, pero encuentra antes la marca EOF, leerá hasta ese punto.
La función fread() se complementa muy bien con rewind(), la cual recibe como argumento, el manejador o identificador del fichero sobre el que queremos trabajar, y posiciona el puntero de la lectura en el primer caracter. Recuerde que con fread() el puntero se quedaba ubicado en el caracter hasta el que se había mostrad, por ello cundo deseemos mostrar nuevamente el contenido desde el inicio se hace mediante la función rewind().
Veamos el siguiente script donde se ilustra el uso de estas funciones.
<?php
// Se define el salto de línea.
    define ("salto","<br>\n");
// Se abre el fichero para lectura.
    $manejadorFichero1=fopen ("lecturaSimple.txt","r");
/* Se leen doce caracteres. El puntero de lectura queda
posicionado para leer a partir del carácter 13. */
    $bloque=fread ($manejadorFichero1, 12);
    echo ("Los doce primeros caracteres del fichero son: <b>$bloque");
/* Se leen otros doce caracteres. El puntero de lectura
queda posicionado para leer a partir del carácter 25. */
    $bloque=fread ($manejadorFichero1, 12);
    echo ("</b>".salto."El siguiente bloque de doce caracteres es: <b>$bloque");
/* Se intentar leer otros doce caracteres, pero se alcanza
la marca EOF, con lo que se detiene la lectura antes. */
    $bloque=fread ($manejadorFichero1, 12);
    echo ("</b>".salto."El siguiente bloque es: <b>$bloque");
    echo ("</b>".salto."Si queremos volver a leer hay que \"rebobinar\".");
/* Se rebobina el puntero de lectura, que vuelve a
quedar apuntando al prime caracter. */
    rewind ($manejadorFichero1);
/* Se vuelve a leer el primer bloque de caracteres para
confirma que el puntero ha quedado al principio. */
    $bloque=fread ($manejadorFichero1, 12);
    echo ("</b>".salto."Volvemos a leer el primer bloque de doce caracteres: <b>$bloque");
    echo ("</b>".salto);
// Se cierra el fichero
    fclose ($manejadorFichero1);
?>
Al ejecutar el código verá:

Si te hemos ayudado : )

Te agradeceríamos que apoyaras este proyecto



No se te olvide Comentar y Compartir
en:
                          

0 comentarios:

Publicar un comentario