Diferencia entre revisiones de «Plantilla:PHP/Formularios/accionesFicheros»
De WikiEducator
(→Abrir un fichero) |
|||
Línea 30: | Línea 30: | ||
*'''''$modo ''''' Es el modo de apertura (lectura, creación, añadir )· Hay varios modos<br /> | *'''''$modo ''''' Es el modo de apertura (lectura, creación, añadir )· Hay varios modos<br /> | ||
− | + | ;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. | *Una vez abierto vamos a ver cómo leer o escribir de/en él. | ||
Línea 53: | Línea 53: | ||
|'''w''' | |'''w''' | ||
|Escribe un archivo y corta su contenido. | |Escribe un archivo y corta su contenido. | ||
− | | | + | |Abre el fichero sólo para escribir. <br />Sitúa el puntero al principio y perdiéndose cualquier contenido que hubiera si existía y contenía datos.<br /> Si el archivo no existe, intenta crearlo, retornando '''false''' si no ha podido. |
|- | |- | ||
|'''w+''' | |'''w+''' | ||
|Escribe un archivo desde el principio, corta su contenido, y permite la lectura. | |Escribe un archivo desde el principio, corta su contenido, y permite la lectura. | ||
− | |Abre un archivo para lectura y escritura. Sitúa el puntero al principio dejando | + | |Abre un archivo para lectura y escritura. <br />Sitúa el puntero al principio dejando eliminando el contenido del archivo si hubiera algo. <br />Si el archivo no existe, intenta crearlo. |
|- | |- | ||
|'''a''' | |'''a''' | ||
− | | | + | |Abre el fichero en modo añadir . |
− | |Abierto sólo en escritura | + | |Abierto sólo en escritura.<br /> Sitúa el puntero al final del archivo. <br />Si el archivo no existe, intenta crearlo. |
|- | |- | ||
|'''a+''' | |'''a+''' | ||
− | | | + | |Abre el fichero en modo lectura y añadir . |
− | |Se abre el archivo para lectura y escritura. Sitúa el puntero al final del archivo. Si el archivo no existe, intenta crearlo. | + | |Se abre el archivo para lectura y escritura. <br />Sitúa el puntero al final del archivo.<br /> Si el archivo no existe, intenta crearlo. |
|- | |- | ||
|} | |} |
Revisión de 20:41 15 oct 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.
|
|
|
r | Lee un fichero desde el principio. | Se abre el fichero sólo para leer. Sitúa el cursor al principio del archivo. Si el fichero no existe o no hay permisos de lectura retorno false. |
r+ | Abre el fichero para lectura y permite la escritura. | Abre el archivo para lectura y escritura. Sitúa el cursor o puntero al principio del archivo. Si el fichero no existe o no hay permisos de lectura retorno false. |
w | Escribe un archivo y corta su contenido. | Abre el fichero sólo para escribir. Sitúa el puntero al principio y perdiéndose cualquier contenido que hubiera si existía y contenía datos. Si el archivo no existe, intenta crearlo, retornando false si no ha podido. |
w+ | Escribe un archivo desde el principio, corta su contenido, y permite la lectura. | Abre un archivo para lectura y escritura. Sitúa el puntero al principio dejando eliminando el contenido del archivo si hubiera algo. Si el archivo no existe, intenta crearlo. |
a | Abre el fichero en modo añadir . | Abierto sólo en escritura. Sitúa el puntero al final del archivo. Si el archivo no existe, intenta crearlo. |
a+ | Abre el fichero en modo lectura y añadir . | Se abre el archivo para lectura y escritura. Sitúa el puntero al final del archivo. Si el archivo no existe, intenta crearlo. |
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>