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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 "rn“ para que se inserte un salto de línea y limitamos las
entradas a 150 caracteres*/
fwrite($f1,$v."rn",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 deAplicaciones
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.000bytes
<INPUT type="hidden" name="lim_tamano" value="1000000">
<p><b>Archivoa 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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
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 deAplicaciones
WEB.FICHEROS IES San Sebastián Huelva

2 7 ficheros_php

  • 1.
    Unidad Didáctica 2 Programaciónde documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS www.docencia.taboadaleon.es Juan José Taboada León 2016/2017 Implantación deAplicaciones WEB.FICHEROS IES San Sebastián Huelva 1
  • 2.
    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 deAplicaciones WEB.FICHEROS IES San Sebastián Huelva Ejemplos  index.html  gestion.php  ave.jpg  temperaturas.txt
  • 3.
    Utilización de archivosexternos 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 deAplicaciones 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
  • 4.
    Función include (I) JuanJosé Taboada León 2016/2017 Implantación deAplicaciones 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; } ?> …….
  • 5.
    Función include (II) JuanJosé Taboada León 2016/2017 Implantación deAplicaciones 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() ?>
  • 6.
    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 deAplicaciones WEB.FICHEROS IES San Sebastián Huelva
  • 7.
    Manejo de ficherosexternos  Función fopen() : crea o modifica ficheros  $f1=fopen(fichero,modo) ◦ Función fclose($f1) Juan José Taboada León 2016/2017 Implantación deAplicaciones 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-
  • 8.
    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 deAplicaciones WEB.FICHEROS IES San Sebastián Huelva
  • 9.
    Funciones para posicionarsedentro del fichero (Punteros Internos) Funciones feof($f1) rewind($f1) fseek($f1,posición) ftell($f1) Juan José Taboada León 2016/2017 Implantación deAplicaciones 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
  • 10.
    Funciones de Lecturay 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 deAplicaciones WEB.FICHEROS IES San Sebastián Huelva
  • 11.
    Funciones de Borradoy 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 deAplicaciones WEB.FICHEROS IES San Sebastián Huelva
  • 12.
    Funciones de Informativas FuncionesInformativas 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 deAplicaciones WEB.FICHEROS IES San Sebastián Huelva Actividades:Haz ficheros1 a ficheros5
  • 13.
    Guardar y leerdatos transferidos mediante un formulario Juan José Taboada León 2016/2017 Implantación deAplicaciones 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 "rn“ para que se inserte un salto de línea y limitamos las entradas a 150 caracteres*/ fwrite($f1,$v."rn",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 ?>
  • 14.
    Transferencia de ficheros(I)  Primero: la configuración de php.ini  Segundo: el formulario Juan José Taboada León 2016/2017 Implantación deAplicaciones 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.000bytes <INPUT type="hidden" name="lim_tamano" value="1000000"> <p><b>Archivoa transferir<b><br> <INPUT type="file" name="archivo"></p> <p><INPUT type="submit" name="enviar"value="Aceptar"></p> </FORM> </BODY> </HTML>
  • 15.
    Transferencia de ficheros(II)  Tercero:la transferencia  Por último Juan José Taboada León 2016/2017 Implantación deAplicaciones 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
  • 16.
    Funciones de compresiónzlib Juan José Taboada León 2016/2017 Implantación deAplicaciones 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)
  • 17.
    Comprimiendo cadenas Juan JoséTaboada León 2016/2017 Implantación deAplicaciones WEB.FICHEROS IES San Sebastián Huelva Funciones gzcompress(cadena,nivel) gzdeflate(cadena,nivel) gzencode(cad,niv,opc) gzuncompress(cadena) gzinflate(cadena)
  • 18.
    Funciones para buferizaciónde 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 deAplicaciones 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
  • 19.
    Funciones FTP  Lasestudiaremos a través del siguiente enlace funcionesFTP.pdf Juan José Taboada León 2016/2017 Implantación deAplicaciones WEB.FICHEROS IES San Sebastián Huelva Actividades:Haz ftp1
  • 20.
    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 deAplicaciones 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"; } ?>
  • 21.
    Ejemplo mensaje decorreo Juan José Taboada León 2016/2017 Implantación deAplicaciones 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()); ?>
  • 22.
    Formatos MIME  (MultipurposeInternet Mail Extensions) ◦ Mensajes multipartes ◦ Mensaje con ficheros adjuntos (lo veremos en la segunda evaluación) Juan José Taboada León 2016/2017 Implantación deAplicaciones WEB.FICHEROS IES San Sebastián Huelva
  • 23.
    Unidad Didáctica 2 2.7FICHEROS FIN GRACIAS Juan José Taboada León 2016/2017 Implantación deAplicaciones WEB.FICHEROS IES San Sebastián Huelva