2 7 ficheros_php
TRANSCRIPT
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("[email protected]", "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(“[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()); ?>
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