Un mejor método para abrir archivos es con fopen(). Esta función le brinda más opciones, como configurar si el archivo es solo para lectura, para escribir también y algunas opciones más. Aquí hay un ejemplo (esto supone que ha leído la breve introducción en la página anterior):

$ file_contents = fopen "diccionario.txt", "r" );
imprimir $ file_contents;
fclose ($ file_contents);

?>

Ejecute este script y vea qué sucede. Debería ver algo como lo siguiente impreso:

ID de recurso n. ° 2

¡No es exactamente lo que esperabas! La razón es que fopen() en realidad no lee el contenido de un archivo. Todo lo que hace es establecer un puntero al archivo que desea abrir. Luego devuelve lo que se llama un identificador de archivo. Todo lo que está haciendo es decirle a PHP que recuerde la ubicación del archivo.

La "r" al final significa "abrir este archivo solo para lectura". Veremos otras opciones en un momento. Pero ahora que le ha dicho a PHP que recuerde la ubicación del archivo que desea abrir, ¿cómo lee el contenido del archivo?

Una forma es usar fgets(). Esto leerá un número específico de caracteres en una sola línea de texto. Por lo general, se usa para recorrer y leer cada línea de texto. En el siguiente ejemplo, imprimimos cada línea por separado. Cuando estas usando fgets(), también debe verificar cuándo se ha llegado al final del archivo. Esto se hace con la función incorporada feof - File,
miDakota del Norte oF File. Pruebe el guión, luego le explicaremos lo que está sucediendo:

$ manejador_archivo = fopen ("diccionario.txt", "r");

while (! feof ($ file_handle)) {

$ line_of_text = fgets ($ file_handle);
imprimir $ línea_de_texto. "
";

}

fclose ($ file_handle);

?>

Lo que debe encontrar es que el contenido está impreso en líneas separadas. pero como funciona?

La primera línea es esta:

$ file_handle = fopen "diccionario.txt", "r" );

Lo que estamos haciendo aquí es pedirle a PHP que abra un archivo y recuerde la ubicación. La ubicación se almacena como un identificador de archivo. Estamos poniendo esto en una variable llamada $ file_handle. ¿Entonces todavía no hemos leído el contenido del archivo? acabamos de pedirle a PHP que recuerde dónde está.

¡La siguiente línea es complicada! Es un bucle while:

tiempo ( ! feof ( $ file_handle ) ) {

}

Realmente hay dos partes en esto. Está el ciclo while:

tiempo () {

}

Y luego está la condición para el ciclo while:

! feof ( $ file_handle )

Un bucle while, recuerde, simplemente da vueltas y vueltas hasta que le dice que se detenga. Da vueltas y vueltas mientras una condición es verdadera. La condición entre los corchetes era nuestra extraña ! feof línea.

La función feof () significa "archivo al final del archivo". Le dice a PHP cuando se ha llegado al final de un archivo. Pones el archivo entre los corchetes de la función:

feof $ file_handle )

Es decir, final del archivo al que se hace referencia en la variable llamada $ file_handle. Excepto que hemos usado el operador NOT (!):

! feof ( $ file_handle )

Eso es porque queremos seguir en bucle mientras NO se haya alcanzado el final del:

tiempo ( ! feof ( $ file_handle ) ) {

}

Entonces, toda esta línea dice: "Si bien NO se ha alcanzado el final del archivo, recorra el archivo al que se apunta en $ file_handle". Tan pronto como se alcance el final del archivo, el ciclo while terminará.

Dentro del ciclo while, la primera línea es esta:

$ line_of_text = fgets $ file_handle );

Estamos usando la función fgets () para obtener una línea de texto de nuestro archivo. Nuevamente, necesitamos el identificador del archivo:

fgets $ file_handle );

Entonces obtenemos una línea de texto de nuestro archivo y luego colocamos la línea en una variable. Luego imprimimos la línea de texto:

imprimir $ línea_de_texto. "
";

Además de imprimir la línea de texto, agregamos un salto de línea HTML.

La última línea del código es esta:

fclose $ file_handle );

Todo lo que hace es cerrar el archivo abierto. Le dice a PHP que el puntero al archivo ya no es necesario. Siempre debe cerrar los archivos que haya abierto con fopen().

El código es un poco complicado cuando lo conoces por primera vez. Pero este tipo de apertura de archivos es útil cuando necesita leer cada línea de texto. Con nuestro archivo, por ejemplo, podríamos separar cada mitad de la línea. Podríamos querer poner las abreviaturas en un cuadro de lista y los significados en otro.

Otro punto a tener en cuenta sobre fgets es que puede tomar (y a menudo lo hace) un segundo argumento. el tamaño de la línea para leer:

fgets ($ file_handle, tamaño de línea);

El tamaño de la línea debe estar en bytes. El valor predeterminado es 1024. Pero este tamaño de línea solo es opcional en PHP versión 4.2 y superior. Si su versión es anterior a esta, es posible que obtenga un error si pierde el tamaño de la línea:

fgets ($ file_handle, 1024);

Si realmente está empaquetando mucha información en cada línea, simplemente aumente el número para el tamaño de la línea.

En la siguiente parte, veremos otras opciones para fopen, en lugar de la "r" de arriba.



<- Atrás una página | Pasar a la siguiente parte ->

Volver a la página de contenido de PHP

Recomendado para ti