Diferencia entre revisiones de «Plantilla:PHP/Formularios/accionesFicheros»
De WikiEducator
(→Leer de un fichero) |
(→Acceso a un directorio) |
||
Línea 72: | Línea 72: | ||
</source> | </source> | ||
===Acceso a un directorio=== | ===Acceso a un directorio=== | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | |||
+ | |||
+ | $base = "/var/www"; | ||
+ | |||
+ | $dir = scandir($base); | ||
+ | |||
+ | var_dump($dir); | ||
+ | |||
+ | foreach ($dir as $directorio){ | ||
+ | if (is_dir("$base$directorio")){ | ||
+ | if ($directorio!="." && $directorio!=".."){ | ||
+ | $ficheros = scandir ($directorio); | ||
+ | if (in_array("index.php", $ficheros)){ | ||
+ | $txt .= "<h2><a href=$directorio/index.php>$directorio</a></h2>"; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | ?> | ||
+ | |||
+ | |||
+ | <!DOCTYPE html> | ||
+ | <!-- | ||
+ | To change this license header, choose License Headers in Project Properties. | ||
+ | To change this template file, choose Tools | Templates | ||
+ | and open the template in the editor. | ||
+ | --> | ||
+ | <html> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <title></title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <?php | ||
+ | echo $txt; | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </source> |
Revisión de 07:37 10 mar 2018
Contenido
Acceso a un fichero
- Son muchas las acciones que podemos hacer con los ficheros
http://php.net/manual/es/book.filesystem.php
- Acciones típicas sobre un fichero
- Vamos a verlas según nuestras necesidades
- 1.-Crear un fichero para escribir en él
- Si no existe que se intenta crear
- Si sí que existe:
- Agregar cosas sin perder lo que había.
- Borrar lo que hubiera crearlo para escribir en él.
- 2.-Abrir un fichero para leer
- Si no existe dará un error
- Si sí que existe lo abrirá para obtener bytes de él
(: En ambos casos obtendremos un recurso descriptor del fichero para operarar con él)
Abrir un fichero
- Parar poder acceder a un fichero necesitamos tener una referencia a él (Tanto para escribir como para leer).
(: Recuerda que es el usuario apache el que ha de tener los permisos necesarios (leer(r),escribir (w), ejecutar (x))
$archivo = fopen($nombre_fichero,$modo)
- $archivo Va a ser la variable con la que vamos a poder gestionar el archvio. Será de tipo recurso, un objeto de una clase del sistema.
- $nombre_fichero Es el nombre del fichero. Nos movemos en ruta respecto a la ubiciación del script que se está ejecutando. Podemos indicar también la ruta
//Ruta absoluta $archivo = fopen('/var/www/html/log.txt',$modo); //Ruta relativa al directorio donde se encuentra el proyecto $archivo = fopen('log.txt',$modo);
- $modo Es el modo de apertura (lectura, creación, añadir )· Hay varios modos
- r => Lectura.
- w => Escritura (Trunca el contenido).
- a => append o añadir.
- Una vez abierto vamos a ver cómo leer o escribir de/en él.
Leer de un fichero
- Podemos realizar una lectura de su contenido por partes
String fread ($fichero, $leng);
- Leemos de un fichero la longuitd en bytes que indique el segundo parámetro
- No será algo habitual pero en alguna ocasión puede venir bien
- Podemos obtener todo el contenido de un fichero.
- Para este cometido tenemos dos funciones
array file($fichero)
- la función file()Esta función devuelve el contenido del fichero como un array indexado de cada una de sus líneas.
string get_file_content($fichero).
- la función get_file_contents() retorna el contenido del fichero como un string.
echo "<div class='fichero'>"; echo "<h2>Fichero index.php </h2>"; echo "<pre class=\"prettyprint\">".htmlspecialchars($index)."</pre>"; echo "<hr />"; echo "</div> ";
Escribir en un fichero
fwrite($fichero, "texto para escribir");
Acceso a un directorio
<?php $base = "/var/www"; $dir = scandir($base); var_dump($dir); foreach ($dir as $directorio){ if (is_dir("$base$directorio")){ if ($directorio!="." && $directorio!=".."){ $ficheros = scandir ($directorio); if (in_array("index.php", $ficheros)){ $txt .= "<h2><a href=$directorio/index.php>$directorio</a></h2>"; } } } } ?> <!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Properties. To change this template file, choose Tools | Templates and open the template in the editor. --> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <?php echo $txt; ?> </body> </html>