Leer un archivo de texto con PHP y manejo de ficheros txt
Julio Perez, julio@gmail.com, Guatemala Jose Lopez, jose@gmail.com, Mexico Enrique Marcos, enrma@gmail.com, Argentina Manuel Gomez, mangom@gmail.com, Mexico Julio Sanxhez, sanjo@gmail.com, Chile Carlos Lora, calor@gmail.com, Mexico (No deje una línea vacía al final). En este caso los valores están separados por una coma, pero pueden serlo por espacios, tabuladores, comillas dobles, etcétera. Ahora el archivo nombres.php:
Nombre | Correo | Pais |
= $datos[0] ?> | = $datos[1] ?> | = $datos[2] ?> |
Manejando ficheros
Habrá muchas ocasiones en las que nos interese acceder a ficheros, bien para recuperar sus datos, bien para escribir en ellos. Piensa por ejemplo en contadores de hits, libros de visitas, logs, o simplemente web fetching (recuperar datos de otra web para incluirlos en la tuya). En esta sección veremos las funciones mas usuales para estos fines
Apertura de un archivo.
La función utilizada para abrir un archivo en PHP es fopen, y su sintaxis:
file_handler=fopen(“nombre_de_archivo”,”modo”);
Donde file_handler es el puntero que se crea sobre el archivo, nombre_de_archivo es la ruta y nombre del archivo a abrir, y modo se refiere a los diferentes modos escritura/lectura.
Los modos en los que se puede abrir un archivo son:
r Sólo lectura. El puntero al comienzo del archivo
r+ Lectura y escritura; apuntador al inicio del archivo
w Sólo escritura, si no existe el archivo lo crea, si existe lo convierte en fichero de longitud cero y el apuntador se coloca en el inicio (sobreescribe el contenido, vamos)
w+ Lectura y escritura, si existe lo trunca a tamaño cero, y se situa al inicio, si no existe lo crea
a Modo append, sólo escritura, si no existe lo crea. Si existe, el apuntador se coloca al final del ficero (listo para escribir a continuacion del contenido)
a+ Modo append, lectura y escritura, si no existe lo crea; apuntador al final del archivo
b es un flag adicional a cualquiera de los anteriores que indica que vamos a operar sobre un archivo binario (en contraposicion a archivo de texto) como una imagen o un sonido. En algunos sistemas operativos como linux no existe esta diferencia asi que el indicador b será ignorado.
La función devuelve un file_handler que luego debe ser usado en todas las funciones de tipo fgets, fputs, fclose, fread, fwrite, etc.
Con fopen podemos abrir ficheros locales o remotos. Si nombre_de_archivo comienza con “http://” (o HTTP://), php abre una conexión HTTP hacia el servidor especificado y se devuelve un apuntador de fichero al comienzo del texto de respuesta. Asi puedes acceder (en modo lectura solamente) a ficheros de otros servidores. La dirección en estos casos debe ser completa.
Si nombre_de_archivo comienza con “ftp://” (o FTP://), se abre una conexión ftp hacia el servidor indicado.
Si nombre_de_archivo empieza de cualquier otra forma, php considera que se trata de una ruta a un fichero local y intenta recuperarlo. Si la operación falla (no existe el fichero en esa ruta, o no se puede abrir) la función devuelve FALSE.
Advierte que en todos los casos nos referimos no solo a la apertura de un fichero, sino a la obtención de un puntero o apuntador a su contenido. fopen solo debe usarse para abrir un archivo cuyo contenido vamos a manipular. Si unicamente queremos recuperar su contenido (y por ejemplo mostrarlo en pantalla), hay otras funciones mas adecuadas.
Cerrar el archivo: fclose()
Con fclose cerramos el apuntador adquirido sobre un fichero previamente abierto con fopen. Su sintaxis es fclose (file_handler)
Es muy importante cerrar el fichero al terminar de operar con el, para evitar deterioro de los datos.
Veamos un ejemplo:
//vamos a ir construyendo un contador básico
//abrimos “contador.txt” en modo lectura
if ($file = fopen( “/otros/contador.txt”, “r”)) {
// tenemos un puntero ($file) sobre contador.txt
// apunta al comienzo … Aqui incluiriamos código para recuperar datos
fclose($file); // hemos terminado, cerramos el apuntador
}
// Abrimos el archivo de nuevo, ahora en modo escritura.
if ($file = fopen( “/otros/contador.txt”, “w”)) {
// tenemos nuevo apuntador. Aqui iria el código que sobreescribiria
// el archivo con los nuevos datos.
fclose($file); //hemos terminado, cerramos el archivo.
}
?>
Como habrás advertido, $file no es el nombre del archivo, es nuestro apuntador (file handler) al contenido del mismo. Y en otra sección abordaremos como leer y escribir el fichero.
Como recordatorio final, si tienes que indicar la ruta a un fichero en un entorno windows, recuerda que si usas barras invertidas \ tienes que incluir la barra adicional de escape \\.
Tuitear 5.040 Veces leído 0 comentarios |
27 agosto 2008 en En Internet |