Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web...

23
Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS www.docencia.taboadaleon.es Juan José Taboada León 2016/2017 Implantación de Aplicaciones WEB.FICHEROS IES San Sebastián Huelva 1

Transcript of Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web...

Page 1: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Unidad Didáctica 2

Programación de documentos

web utilizando lenguajes de script

de servidor

2.7 FICHEROS www.docencia.taboadaleon.es

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva 1

Page 2: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Ficheros o Archivos

Un archivo o fichero informático es

un conjunto de bits almacenado en un

dispositivo

Un archivo es identificado por un

nombre

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Ejemplos

index.html

gestion.php

ave.jpg

temperaturas.txt

Page 3: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Utilización de archivos externos

La función 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 extensión .inc.php.

Si el fichero contiene funciones sólo podrá ser invocado una vez

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

ejemplo1.inc.php <h3><font color="#ff0000">Este sería un texto que se incluiría dentro de la página mediante la funciones include o require</font></h3><br>

Ejemplo1.php

<?php include("ejemplo1.inc.php") ?>

Salida HTML:

Este sería un texto que se incluiría dentro de la página mediante la

funciones include o require

Page 4: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Función include (I)

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

funciones.inc.php

<?php function encabezado() { ?> <html> <head>

<title> Pruebas con la función include </title> </head> <body> <center><img src="./images/cabecera.jpg"><br> <font size=6 face="Times" color="#0000ff">Mi cabecera</font><br> <hr width=75%>

<?php } ?> <?php function calcula($a,$b) { return $a*$b; } ?> …….

Page 5: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Función include (II)

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

index.php

Actividades: Haz include1 y 2

<!-- empezaríamos incluyendo el fichero que contiene las funciones. No

escribiría nada hasta que las funciones que contiene no fueran invocadas //-->

<?php include(“funciones.inc.php") ?>

<!-- Insertaremos un script PHP que invoque la función encabezado. Debe

llevar las etiquetas de apertura y cierre <?php y ?> de PHP //-->

<?php encabezado() ?>

<!-- Insertaremos código HTML según nuestra conveniencia //-->

Aquí iría el contenido de la página<br>

.... esto es texto HTML................<br>

...........................<br><br><br>

<!-- Ahora ejecutaremos la función PHP calcula() pasando como parámetros 7

y 9. El return de la función nos devolverá el resultado que imprimiremos aquí //-

->

<?php print "Aquí va el resultado de la multiplicación: ".calcula(7,9); ?>

<!-- Por último invocaremos la función pie() -->

<?php pie() ?>

Page 6: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

La función require()

Require(): incluye y evalúa el archivo. Si error E_ERROR

Include() : incluye y evalúa 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 gestión de fechas (anterior a 1970) http://phplens.com/lens/dl/adodb-time.zip

include("adodb_time.inc.php");

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Page 7: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Manejo de ficheros externos

Función fopen() : crea o modifica ficheros

$f1=fopen(fichero,modo)

◦ Función fclose($f1)

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Ejemplo: $farchivo = fopen(“leame.txt","r"); //procesamiento ……. fclose($farchivo);

$f1 es una variable que

recoge el identificador del recurso

Permite cerrar el fichero especificado en $f1 y

devuelve un valor booleano-

Page 8: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

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 León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Page 9: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Funciones para posicionarse dentro

del fichero (Punteros Internos)

Funciones

feof($f1)

rewind($f1)

fseek($f1, posición)

ftell($f1)

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Esta tabla y las próximas sobre el uso de ficheros serán

completadas en las actividades propuestas

Page 10: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

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 León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Page 11: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Funciones de Borrado y más …

Borrado de Ficheros

unlink(fichero)

Duplicado de Ficheros

copy(fich1, fich2)

Renombrar Ficheros rename(fich1, fich2)

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Page 12: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Funciones de Informativas

Funciones Informativas

file_exists(fichero)

filesize(fichero)

filetype(fichero)

filemtime(fichero)

stat(fichero)

Otras Funciones a través de este enlace

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Actividades: Haz ficheros1 a ficheros5

Page 13: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Guardar y leer datos transferidos

mediante un formulario

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

<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>

<?php $f1=fopen("escribiente.txt","a+"); /*abrimos el fichero en modo a+ */ # leemos los valores transferidos desde el formulario foreach($_POST as $v){ /* añadimos "\r\n“ para que se inserte un salto de línea 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 ?>

Page 14: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Transferencia de ficheros (I) Primero: la configuración de php.ini

Segundo: el formulario

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

<HTML>

<BODY>

<FORM ENCTYPE="multipart/form-data" ACTION=“procesaFichero.php"

METHOD="post">

# con este input "oculto" establecemos el límite máximo

# del tamaño 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>

Page 15: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Transferencia de ficheros (II)

Tercero: la transferencia

Por último

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

foreach ($HTTP_POST_FILES['archivo'] as $indice=>$valor){ print $indice."--->".$valor."<br>"; } ?>

En $HTTP_POST_FILES se

recogerán datos relativos al contenido

del fichero y a los resultados de la

transferencia.

Se trata de un array bidimensional.

•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 tamaño del archivo

Copia en nuestro espacio de servidor

move_uploaded_file(fich1, fich2) Actividades: Haz fichero6

Page 16: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Funciones de compresión zlib

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Funciones

$f=gzopen(fich,mod, path) mod: r,w(1 a9). Ejemplo $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)

Page 17: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Comprimiendo cadenas

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Funciones

gzcompress(cadena, nivel)

gzdeflate(cadena, nivel)

gzencode(cad, niv, opc)

gzuncompress(cadena)

gzinflate(cadena)

Page 18: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Funciones para buferización de

salidas impide que las salidas generadas por el script se envíen al cliente y por tanto no

serán visualizadas en el navegador

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Funciones

ob_start()

ob_get_contents()

ob_end_clean()

ob_clean()

Ejemplo de un script

que comprime una página web

y la envía comprimida al

cliente

Actividades: Haz fichero7

Page 19: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Funciones FTP

Las estudiaremos a través del siguiente

enlace

funcionesFTP.pdf

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Actividades: Haz ftp1

Page 20: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Mensajes de correo

Requiere disponer de un servidor de correo

electrónico instalado y activo y la modificación

de la configuración inicial del fichero php.ini.

Pare ello seguiremos el siguiente enlace

Instalación y configuración de un servidor de correo

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

// mail(dest,asunto,mensaje)

<? if(mail("[email protected]", "Mi primer mensaje","Este es el texto")){ print "mensaje enviado"; }else{ print "el mensaje no ha podido enviarse"; } ?>

Page 21: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Ejemplo mensaje de correo

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

<?

mail(“[email protected]","Varios destinatarios","Cuerpo del

mensaje",

"From: CursoPHP <[email protected]>

Reply-To: [email protected]

Cc: [email protected],[email protected]

Bcc:[email protected],[email protected]

X-Mailer: PHP/" . phpversion());

?>

Page 22: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Formatos MIME

(Multipurpose Internet Mail Extensions)

◦ Mensajes multipartes

◦ Mensaje con ficheros adjuntos

(lo veremos en la segunda evaluación)

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

Page 23: Unidad Didáctica 2 - Juan José Taboada · Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS Juan José Taboada León 2016/2017

Unidad Didáctica 2

2.7 FICHEROS

FIN

GRACIAS

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva