Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
(Ejercicio 20: Escribir en un fichero)
 
(11 revisiones intermedias por el mismo usuario no mostrado)
Línea 2: Línea 2:
 
<!--{:Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Ficheros/nav}}-->
 
<!--{:Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Ficheros/nav}}-->
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Ficheros/nav}}
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Ficheros/nav}}
Los ejercicios están resueltos en http://www.manuel.infenlaces.com/distancia/ejercicios/index.php grupo 3 de Ficheros
 
<br />
 
;Realiza los ejercicios planteados en el wiki, intenta hacerlos y luego compararlos con la solución
 
  
{{MRM_Actividad|
+
==Ejercicios de ficheros CRUD==
*Un programa para escribir contenido en un fichero
+
*Esta primera parte consiste en realizar ejercicios para aprender a usar el sistema de fichero en el servidor.
 +
*Es un frecuente llevar un log de lo que hace nuestra aplicación.
 +
*Para implementar estos ejercicio utiliza la programación orientada a objetos
 +
(Contruye una clase llamada Fichero y desarrolla los métodos que necesites)
 +
;Realiza los ejercicios planteados en el wiki, intenta hacerlos y luego compararlos con la solución
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio1|Ejercicio 1:  Escribir en un fichero]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 1: Escribir en un fichero|
 +
*Realiza un programa para escribir contenido en un fichero
 
*Lo podrás hacer tanto en modo añadir como en modo escribir
 
*Lo podrás hacer tanto en modo añadir como en modo escribir
 
*Verifica luego en el directorio del proyecto que ha funcionado correctamente
 
*Verifica luego en el directorio del proyecto que ha funcionado correctamente
 
[[Archivo:practica_ficheros_escribir.png]]
 
[[Archivo:practica_ficheros_escribir.png]]
 
}}
 
}}
{{MRM_Actividad|
+
<br />
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio20|Ejercicio 20:  Escribir en un fichero]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 20: Obtener el contenido de un directorio|
 +
*Se quiere obtener el contenido de todos los directorios de mi documentRoot, de aquellos que tengan en su contenido un fichero llamado index.php
 +
*Se retornará estos directorios en una una ancla html
 +
<source lang=html5>
 +
<a href=$directorio/index.php>$directorio</a>
 +
<a href=/var/www/calculadora/index.php>Caculadora</a>
 +
</source>
 +
*A la vez anotaremos en un log llamado log.txt, una anotació por cada vez que se ejecute
 +
 
 +
Fecha dia/mes/año h:minuto:s  cuantos directorios se han entregado
 +
 
 +
 
 +
{{plegable|hide|posible_solucion|
 +
<source lang=php>
 +
<?php
 +
$numero_directorios=0;
 +
 
 +
//Obtenemos los directorios que nos interesan del /var/www
 +
$ficheros = scandir("/var/www");
 +
var_dump($ficheros);
 +
foreach ($ficheros as $fichero) {
 +
    if (is_dir("/var/www/$fichero"))
 +
        if (file_exists("/var/www/$fichero".DIRECTORY_SEPARATOR."index.php")) {
 +
            echo "<a target='_blank' href='http://localhost/$fichero/index.php'>
 +
                  $fichero</a><br>";
 +
            $numero_directorios++;
 +
        }
 +
 
 +
}
 +
 
 +
//Preparo el log donde anotar informacion de cada ejecución
 +
$log = fopen("./log/log.txt", "a");
 +
$fecha = date("d/m/Y H:i:s");
 +
$cadena = "$fecha Se han entregado $numero_directorios directorios ".PHP_EOL;
 +
fwrite($log, $cadena);
 +
fclose($log);
 +
 
 +
 
 +
?>
 +
<!doctype html>
 +
<html lang="en">
 +
<head>
 +
    <meta charset="UTF-8">
 +
    <meta name="viewport"
 +
          content="width=device-width">
 +
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
 +
    <title>Document</title>
 +
</head>
 +
<body>
 +
<h1>Hola</h1>
 +
</body>
 +
</html>
 +
 
 +
</source>
 +
 
 +
}}
 +
 
 +
 
 +
}}
 +
 
 +
[[Archivo:practica_ficheros_escribir.png]]
 +
}}
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio2|Ejercicio 2:  Escribir y leer en un fichero]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 2: Escribir  y leer de un fichero|
 +
*Modifica el ejercicio anterior con una nueva opción llamada Leer
 +
*En este caso se leerá el fichero especificado si existe, y su contenido aparecerá en el textarea
 +
*En caso de no existir el fichero no se visualizará nada
 +
*En la parte superior del forumulario debe de aparecer un mensaje informativo según la acción que se esté ejecutando
 +
#Inserte datos y seleccione opción
 +
#Se ha creado el fichero especificado o no se ha podido crear el fichero
 +
#Se ha leído el fichero especificado o no se ha podido leer
 +
 
 +
[[Archivo:practica_ficheros_escribir.png]]
 +
}}
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio3|Ejercicio 3: Leer un directorio]]===
 +
<br />
 +
{{MRM_Actividad|Title= Ejercicio 3: Leer de un directorio|
 
*Un programa que nos muestre en un deplegable todos los ficheros del directorio actual
 
*Un programa que nos muestre en un deplegable todos los ficheros del directorio actual
 
*Alternativamente puedes tener una caja de texto para especificar el directorio
 
*Alternativamente puedes tener una caja de texto para especificar el directorio
Línea 23: Línea 112:
 
PRueba a crear ficheros con la práctica 1 y leerlos con la practica 2
 
PRueba a crear ficheros con la práctica 1 y leerlos con la practica 2
 
}}
 
}}
 +
<nr />
  
{{MRM_Actividad|
+
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio4|Ejercicio 4: Leer el contenido de un fichero]]===
Partiendo de que tenemos un fichero llamado '''''nombres.txt''''' en el directorio actual
+
<br />
 +
{{MRM_Actividad|Title= Ejercicio 4: Leer el contendio de un fichero|
 +
*Partiendo de que tenemos un fichero llamado '''''nombres.txt''''' en el directorio actual
 
{{Plegable|hide|nombres.txt|
 
{{Plegable|hide|nombres.txt|
 
<source lang=html5>
 
<source lang=html5>
Línea 47: Línea 139:
 
  Las funciones que trabajan con el puntero retornan nul si ya he llegado al final del fichero
 
  Las funciones que trabajan con el puntero retornan nul si ya he llegado al final del fichero
 
}}
 
}}
{{MRM_Actividad|
+
 
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio5|Ejercicio 5: Crear un borrar ficheros]]===
 +
<br />
 +
{{MRM_Actividad|Title= Ejercicio 5: Crear y borrar ficheros|
 
;Un programa que nos permita crear y borrar ficheros
 
;Un programa que nos permita crear y borrar ficheros
 
*Trabajaremos sobre un directorio llamado ficheros de nuestro proyecto
 
*Trabajaremos sobre un directorio llamado ficheros de nuestro proyecto
Línea 60: Línea 157:
 
[[Archivo:borrar_crear_ficheros.png]]
 
[[Archivo:borrar_crear_ficheros.png]]
 
}}
 
}}
{{MRM_Actividad|
+
<br />
;Un programa que nos permita crear y borrar ficheros
+
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio7|Ejercicio 7: Renombrando ficheros]]===
 +
<br />
 +
{{MRM_Actividad|Title= Ejercicio 7: Renombrando ficheros |
 
*Trabajaremos sobre un directorio llamado ficheros de nuestro proyecto que tendrá una serie de ficheros
 
*Trabajaremos sobre un directorio llamado ficheros de nuestro proyecto que tendrá una serie de ficheros
 
*mostraremos un desplegable con todos los ficheros
 
*mostraremos un desplegable con todos los ficheros

Última revisión de 03:47 19 ene 2022



Ejercicios de ficheros CRUD

  • Esta primera parte consiste en realizar ejercicios para aprender a usar el sistema de fichero en el servidor.
  • Es un frecuente llevar un log de lo que hace nuestra aplicación.
  • Para implementar estos ejercicio utiliza la programación orientada a objetos
(Contruye una clase llamada Fichero y desarrolla los métodos que necesites)
Realiza los ejercicios planteados en el wiki, intenta hacerlos y luego compararlos con la solución

Ejercicio 1: Escribir en un fichero



Icon activity.jpg
Ejercicio 1: Escribir en un fichero
  • Realiza un programa para escribir contenido en un fichero
  • Lo podrás hacer tanto en modo añadir como en modo escribir
  • Verifica luego en el directorio del proyecto que ha funcionado correctamente

Practica ficheros escribir.png




Ejercicio 20: Escribir en un fichero



Icon activity.jpg
Ejercicio 20: Obtener el contenido de un directorio
  • Se quiere obtener el contenido de todos los directorios de mi documentRoot, de aquellos que tengan en su contenido un fichero llamado index.php
  • Se retornará estos directorios en una una ancla html
<a href=$directorio/index.php>$directorio</a>
<a href=/var/www/calculadora/index.php>Caculadora</a>
  • A la vez anotaremos en un log llamado log.txt, una anotació por cada vez que se ejecute
Fecha dia/mes/año h:minuto:s   cuantos directorios se han entregado






Practica ficheros escribir.png }}

Ejercicio 2: Escribir y leer en un fichero



Icon activity.jpg
Ejercicio 2: Escribir y leer de un fichero
  • Modifica el ejercicio anterior con una nueva opción llamada Leer
  • En este caso se leerá el fichero especificado si existe, y su contenido aparecerá en el textarea
  • En caso de no existir el fichero no se visualizará nada
  • En la parte superior del forumulario debe de aparecer un mensaje informativo según la acción que se esté ejecutando
  1. Inserte datos y seleccione opción
  2. Se ha creado el fichero especificado o no se ha podido crear el fichero
  3. Se ha leído el fichero especificado o no se ha podido leer

Practica ficheros escribir.png




Ejercicio 3: Leer un directorio



Icon activity.jpg
Ejercicio 3: Leer de un directorio
  • Un programa que nos muestre en un deplegable todos los ficheros del directorio actual
  • Alternativamente puedes tener una caja de texto para especificar el directorio

Al seleccionar uno de ellos y dar a mostrar se verá en contenido del fichero

  • Debes leerlo línea a línea
  • Para ver el contenido html usa la función htmlspecialchar

Practica ficheros leer.png

  • Al seleccionar uno veremos su contenido (si tenemos permisos para ver

Practica ficheros leer1.png PRueba a crear ficheros con la práctica 1 y leerlos con la practica 2



<nr />

Ejercicio 4: Leer el contenido de un fichero



Icon activity.jpg
Ejercicio 4: Leer el contendio de un fichero
  • Partiendo de que tenemos un fichero llamado nombres.txt en el directorio actual
  • Lee su contenido usando las siguientes funciones
  1. fgets
  2. fgetss
  3. fread
  4. file
  5. file_get_content()
  • Recurda abir y cerrar el fichero o bien reubicarte con la función fseek
  • Funciones de ayuda
filesize($nombre_fichero) retorna el tamaño en bytes del fichero
fseek ( resource $file,  int $offset) pone la cabeza de leer/escribir en el fichero en la posición especificada: 0 al principio del fichero)
Las funciones que trabajan con el puntero retornan nul si ya he llegado al final del fichero





Ejercicio 5: Crear un borrar ficheros



Icon activity.jpg
Ejercicio 5: Crear y borrar ficheros
Un programa que nos permita crear y borrar ficheros
  • Trabajaremos sobre un directorio llamado ficheros de nuestro proyecto
  • mostraremos un desplegable con todos los ficheros
  • Crear ficheros creará 20 ficheros aleatorios en esa carpeta usa la función tempnam(...)
  • Borrar ficheros borrará todos los ficheros de ese directorio usa la función unlink(...)
  • Borrar fichero seleccionado eliminará el fichero que seleccionemos
$name tempnam($directorio,$prefijo);
$directorio es el directorio dónde se creará el fichero aleatorio
$prefijo es un string que se pondrá delante del nombre aleatorio generado
$name es el nombre del fichero que se ha creado (false si no se ha podido crear)

Borrar crear ficheros.png




Ejercicio 7: Renombrando ficheros



Icon activity.jpg
Ejercicio 7: Renombrando ficheros
  • Trabajaremos sobre un directorio llamado ficheros de nuestro proyecto que tendrá una serie de ficheros
  • mostraremos un desplegable con todos los ficheros
  • una caja de texto nos permitirá poner el nuevo nombre del fichero selecionado
bool rename($origen,$desntino);

Renombrar ficheros.png