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

De WikiEducator
Saltar a: navegación, buscar
(Ejercicio 4: Crear un borrar ficheros)
(Ejercicio 20: Escribir en un fichero)
 
(4 revisiones intermedias por el mismo usuario no mostrado)
Línea 18: Línea 18:
 
}}
 
}}
 
<br />
 
<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]]===
 
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio2|Ejercicio 2:  Escribir y leer en un fichero]]===
 
<br />
 
<br />
Línea 93: Línea 159:
 
<br />
 
<br />
  
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio5|Ejercicio 5: Renombrando ficheros]]===
+
===[[Usuario:ManuelRomero/ProgramacionWeb/ficheros/ejercicios/ejercicio7|Ejercicio 7: Renombrando ficheros]]===
 
<br />
 
<br />
{{MRM_Actividad|Title= Ejercicio 5: Renombrando ficheros |
+
{{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 04: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