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

Post on 28-Jun-2020

7 views 0 download

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

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

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

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

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; } ?> …….

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() ?>

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

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-

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

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

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

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

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

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

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>

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

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)

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)

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

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

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("juan@mispruebas.com", "Mi primer mensaje","Este es el texto")){ print "mensaje enviado"; }else{ print "el mensaje no ha podido enviarse"; } ?>

Ejemplo mensaje de correo

Juan José Taboada León

2016/2017

Implantación de Aplicaciones

WEB.FICHEROS IES San Sebastián Huelva

<?

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());

?>

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

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