Sei sulla pagina 1di 22

Unidad Didctica 2

Programacin de documentos
web utilizando lenguajes de script
de servidor
2.7 FICHEROS

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva 1

Ficheros o Archivos
Un archivo o fichero informtico es
un conjunto de bits almacenado en un
dispositivo
Un archivo es identificado por un
nombre

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Utilizacin de ficheros externos


INCLUDE

PHP dispone de funciones que permiten insertar en un documento


una parte o la totalidad de los contenidos de otro.
include("nom. del fichero")
utilizar archivos con extensin .inc.php.
Si el fichero contiene funciones slo podr ser invocado una vez

ejemplo1.inc.php
<h3><font color="#ff0000">Este sera un texto que se incluira dentro de la
pgina mediante la funciones include o require</font></h3><br>

Ejemplo1.php
<?php include("ejemplo1.inc.php") ?>
Salida HTML:
Este sera un texto que se incluira dentro de la pgina mediante la
funciones include o require
Juan Jos Taboada Len
2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

INCLUDE

Include1.php

ejemplo2.inc.php

Actividades: Haz include1 y 2


Juan Jos Taboada Len
2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

La funcin require()
Require(): incluye y evala el archivo. Si error E_ERROR
Include() : incluye y evala el archivo. Si error E_WARNING

include_once("fichero") y
require_once("fichero")
van a impedir que un mismo fichero pueda incluirse dos veces.
$v=get_included_files() : Recoge en un array escalar Los nombres de los
ficheros incluidos en el archivo en uso por include_once.
$v=get_required_files() : igual pero para required_once

Utilizando include para gestin de fechas (anterior a 1970)


http://phplens.com/lens/dl/adodb-time.zip
include("adodb_time.inc.php");

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Manejo de ficheros externos

Funcin fopen() : crea o modifica ficheros


es una variable que

$f1=fopen(fichero,modo) $f1
recoge el identificador del recurso

Funcin fclose($f1)

Permite cerrar el fichero especificado en $f1 y


devuelve un valor booleano-

Ejemplo: $farchivo = fopen(leame.txt","r");


//procesamiento .
fclose($farchivo);
Juan Jos Taboada Len
2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Funciones sobre ficheros


Posicionarse dentro del fichero
(Punteros internos)
Lectura y Escritura en Ficheros
Borrar, Duplicar y Renombrar Ficheros
Funciones informativas
Otras funciones

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Funciones para manejar Punteros


Internos
Funciones
feof($f1)
rewind($f1)
fseek($f1, posicin)
ftell($f1)

Esta tabla y las prximas sobre el uso de ficheros sern


completadas en las actividades propuestas

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Funciones de Lectura y Escritura


Funciones para Leer de Ficheros
readfile(fichero)

$var=file(fichero)
fpassthru($f1)
fgets($f1,long)
fgetc($f1)

Funciones para Escribir en


Ficheros
fwrite($f1,"texto",long)
fputs($f1,"texto",long)

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Funciones de Borrado
Borrado de Ficheros
unlink(fichero)

Duplicado de Ficheros
copy(fich1, fich2)

Renombrar Ficheros
rename(fich1, fich2)

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Funciones de Informativas
Funciones Informativas
file_exists(fichero)
filesize(fichero)
filetype(fichero)
filemtime(fichero)
stat(fichero)

Otras Funciones

a travs de este enlace

Actividades: Haz ficheros1 a ficheros5

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Guardar y leer datos transferidos


mediante un formulario
<form name="fichero" method="post" action="escribe.php">
<input type="text" name="nombre">
<input type="text" name="apellido">
<input type=text" name="edad">
<input type="submit" value="enviar">
</form>
<? $f1=fopen("escribiente.txt","a+"); /*abrimos el fichero en modo a+ */
# leemos los valores transferidos desde el formulario
foreach($_POST as $v){
/* aadimos "\r\n para que se inserte un salto de lnea y limitamos las
entradas a 150 caracteres*/
fwrite($f1,$v."\r\n",150);
}
rewind($f1); /* situamos el puntero interno al comienzo del mismo */
/* leemos el fichero */
while (!feof($f1)) {
$z = fgets($f1,250);
echo $z,"<br>";
}
fclose($f1); # cerramos el fichero ?>
Juan Jos Taboada Len
2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Transferencia de ficheros (I)

Primero: la configuracin de php.ini

Segundo: el formulario

<HTML>
<BODY>
<FORM ENCTYPE="multipart/form-data" ACTION=procesaFichero.php"
METHOD="post">
# con este input "oculto" establecemos el lmite mximo
# del tamao del fichero a transferir. En este ejemplo 1.000.000 bytes
<INPUT type="hidden" name="lim_tamano" value="1000000">
<p><b>Archivo a transferir<b><br>
<INPUT type="file" name="archivo"></p>
<p><INPUT type="submit" name="enviar" value="Aceptar"></p>
</FORM>
</BODY>
</HTML>
Juan Jos Taboada Len
2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Transferencia de ficheros (II)

Tercero: la transferencia

foreach ($HTTP_POST_FILES['archivo'] as $indice=>$valor){


print $indice."--->".$valor."<br>"; } ?>
En $HTTP_POST_FILES se
recogern datos relativos al contenido
del fichero y a los resultados de la
transferencia.
Se trata de un array bidimensional.

Por ltimo

Primer ndice: es el nombre de variable usado


para la transferencia (el especificado como
name='nm' en el input type='file').
Los segundos ndices
1. Name: nombre original de fichero
2. Type: formato
3. tmp: nombre con el que ha sido guardado en
el directorio temporal
4. Error: tipo de error de transferencia (0,1)
5. Size: el tamao del archivo

Copia en nuestro espacio de servidor


move_uploaded_file(fich1, fich2)
Juan Jos Taboada Len
2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

Actividades: Haz fichero6


IES San Sebastin Huelva

Funciones de compresin zlib

Funciones
mod: r,w(1 a9). Ejemplo

$f=gzopen(fich,mod, path)

$fichero ='prueba.gz';
$f=gzopen($fichero,"w9",0);
gzclose($f), gzeof($f)
gzseek($f,desplaza), gztell($f), gzrewind($f)
gzread($f, longitud), gzpassthru ($f)
gzwrite($f, cadena, long), gzputs($f, cadena,
long), readgzfile($fichero,path)

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Comprimiendo cadenas
Funciones
gzcompress(cadena, nivel)
gzdeflate(cadena, nivel)
gzencode(cad, niv, opc)
gzuncompress(cadena)
gzinflate(cadena)

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Funciones para buferizacin de


salidas

impide que las salidas generadas por el script se enven al cliente y por tanto no
sern visualizadas en el navegador

Funciones
ob_start()
ob_get_contents()
ob_end_clean()
ob_clean()

Ejemplo de un script
que comprime una pgina web
y la enva comprimida al
cliente

Actividades: Haz fichero7


Juan Jos Taboada Len
2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Funciones FTP

Las estudiaremos a travs del siguiente


enlace
funcionesFTP.pdf

Actividades: Haz ftp1

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Mensajes de correo
Requiere disponer de un servidor de correo
electrnico instalado y activo y la modificacin
de la configuracin inicial del fichero php.ini.
Pare ello seguiremos el siguiente enlace

Instalacin y configuracin de un servidor de correo

// mail(dest,asunto,mensaje)
<?
if(mail("juan@mispruebas.com", "Mi primer mensaje","Este es el
texto")){ print "mensaje enviado";
}else{ print "el mensaje no ha podido enviarse";
}
?>

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Ejemplo mensaje de correo


<?
mail(manoli@mispruebas.com","Varios destinatarios","Cuerpo del
mensaje",
"From: CursoPHP <juan@mispruebas.com>
Reply-To: juan@mispruebas.com
Cc: perico@mispruebas.com,andres@mispruebas.com
Bcc:andres@mispruebas.com,perico@mispruebas.com
X-Mailer: PHP/" . phpversion());
?>

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Formatos MIME

(Multipurpose Internet Mail Extensions)


Mensajes multipartes
Mensaje con ficheros adjuntos
(lo veremos en la segunda evaluacin)

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Unidad Didctica 2
2.7 FICHEROS

FIN
GRACIAS

Juan Jos Taboada Len


2012/2013

Implantacin de Aplicaciones
WEB.FICHEROS

IES San Sebastin Huelva

Potrebbero piacerti anche