You are on page 1of 19

Universidad Privada San Pedro

Tpicos Especiales
Archivos

Prof. Heber Gmez Hurtado

Historia

Antes de que la proliferacin de los gestores de bases de datos se hiciera efectiva, los lenguajes de programacin utilizaban el acceso a archivos para almacenar sus datos. Los lenguajes comenzaron a utilizar el manejo de archivos en aquellos programas que necesitaban guardar datos para recuperarlos posteriormente. Actualmente, la informacin puede almacenarse en archivos o en bases de datos.
2

Abrir Archivo

La funcin fopen () asigna a una variable un puntero (un descriptor) al archivo que quiera abrir. La variable puede utilizarse despus para hacer cualquier tipo de operacin. Si el archivo que intenta abrir no existe o no puede utilizarse en ese momento, fopen() devolver un valor false. Ejemplo:
$fo = fopen(noticias.txt", "a+") ;

Abrir Archivo

Los archivos pueden abrirse en varios modos tal y como indica la tabla:
Explicacin
Slo permite leer el archivo. Si intenta hacer otra cosa le saldr un error. Permite leer y escribir un archivo que exista. El contenido del archivo no se borra, sino que se escribe a continuacin. Slo se puede escribir. Sobrescribe cualquier archivo afectado. Si el archivo no existe intenta crearlo. Escribe siempre al final del archivo tanto si existe como si no. Escribe al final del archivo y permite leer.

Modo
Slo lectura ("r") Lectura y escritura si existe el archivo ("r+") Slo escritura ("w") Escritura y lectura ("w+") Escritura al final ("a") Lectura y escritura al final ("a+")

Abrir Archivo

Desde la versin 4 de PHP puede abrir archivos remotos que estn almacenados en servidores. As, podr utilizar el protocolo HTTP o FTP para recuperar datos remotamente. Ejemplo:
<?php //Los archivos HTTP solo pueden abrirse de lectura $fo = open("http://www.prueba.com/noticias.txt","r"); ?>

Lectura de Archivos

La funcin fread(), tiene como parmetro un descriptor de archivo, devuelto por la funcin fopen () y el tamao del bloque de datos que queremos leer.

Ejemplo: $fr = fread($fo, 4000) ;

Lectura de Archivos

Para conocer el tamao del archivo podemos apoyarnos en la funcin filesize() que devuelve el tamao en bytes del archivo que pase como argumento.

Ejemplo:
$variable = fread($fo,filesize("noticias.txt"));

La funcin fread() devuelve un bloque completo de caracteres ledos desde un archivo y puede hacerse poco manejable cuando intente buscar algn dato especfico.
7

Ejemplo:

Elaborar una pagina PHP que permita leer el contenido de un archivo de texto, llamado: datos.txt. <?php $fo = fopen("datos.txt", "r"); $linea = fread($fo,1500); echo $linea; fclose($fo); ?>

Lectura de Archivos

La funcin fgets() permite leer lnea por lnea un archivo, para poder recorrer todo el archivo hace uso de la funcin feof() la cual permite encontrar el final del archivo La forma ideal de trabajar con archivos es ir leyendo poco a poco su contenido, para poder buscar datos que nos interesen en cada lnea o conjunto de caracteres.

Ejemplo:
<?php $fo = fopen("datos.txt", "r"); $linea = fgets($fo,1500); echo $linea; fclose($fo); ?>

10

Ejemplo 2:
<?php $fo = fopen("datos.txt","r"); $linea=1; while (!feof($fo)) { $dato = fgets($fo,1500); echo "lnea nmero:".$linea." es: ".$dato. "<br/>"; $linea++; } fclose($fo); ?> 11

Lectura de Archivos

La funcin explode() nos permite almacenar todo el contenido de un archivo en un array para su posterior proceso con las funciones propias de las colecciones de datos. La funcin explode() toma como parmetros un carcter por donde cortar la cadena y el nombre de la variable que contiene los datos.

12

Ejemplo:
<?php $fo = fopen ("alumno.txt","r"); while ( !feof($fo) ) { $linea = fgets($fo,50); $archivo = $archivo . $linea; } fclose($fo) ; $lista = explode(",",$archivo); foreach ($lista as $valor) echo "Linea:".$valor."<br>"; ?>

13

Escritura de Archivos

La funcin para escribir es fwrite() escribe en un archivo, apuntado por un descriptor, una cadena de caracteres. Es imprescindible que el archivo est abierto en uno de los modos de escritura para que no d error.

14

Ejemplo:
<?php $hora = date("d/m/Y").",".date("h:m:s a"); $archivo ="datos.txt; if (!($fo=fopen($archivo,"r"))) die("Archivo $archivo no existe"); fclose($fo); //Abrir archivo para escribir datos $fe = fopen($archivo,"a+"); fwrite($fe,"$hora\n"); fclose($fe); ?>
15

Funciones de adicionales

La funcin file_exists() comprueba si un archivo existe, dando el valor true en caso afirmativo y false en caso contrario. La funcin copy ( ) , que toma como parmetros el archivo que quiere copiar y el destino donde quiere guardar la copia. La siguiente funcin, unlink() , toma como parmetro el nombre de un archivo y lo borra. Con la funcin rename permite renombrar el archivo con otro nombre.
16

Ejemplo:
<?php //Verificar existencia de archivo if(!(file_exists("alumno.txt"))) die("Archivo no existe"); //Crear 2 copia del archivo copy("alumno.txt","alumno_copia1.txt"); copy("alumno.txt","alumno_copia2.txt"); //renombrar una de las copias rename("alumno_copia2.txt","backup.txt"); //Eliminar una copia unlink("alumno_copia1.txt"); ?>
17

Directorios

Es muy til disponer de un gestor de ficheros Web que nos permita navegar entre los archivos y directorios. Para hacer esto en PHP, existen dos mtodos. El primero utiliza las funciones opendir(), readdir() y closedir( ) , muy parecidas en su funcionamiento a fopen(), fread() y fclose().

18

Ejemplo
<?php $directorio = "./"; $fo = opendir($directorio); while ($entrada = readdir($fo) ) { if (is_dir($directorio.$entrada) ) { echo "[Directorio] " . $entrada . "<br>"; } elseif ( is_file($directorio.$entrada) ) { echo " [Archivo] ".$entrada."<br>"; } } closedir($fo); ?>
19

You might also like