manipulación de archivos y directorios en el servidor temas: creación, lectura, escritura, borrado...
TRANSCRIPT
![Page 1: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/1.jpg)
Manipulación de Archivos y Directorios en el Servidor
Temas:
• Creación, lectura, escritura, borrado de archivos y directorios
![Page 2: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/2.jpg)
Manipulación de Archivos y Directorios en el Servidor
Es muy común la práctica del tratamiento de archivos cualquier sitio Web. Muy a menudo se presenta la necesidad de procesar un texto para cambiarle el formato, buscar una cadena en su interior o cualquier otro tipo de operación.
PHP ofrece un sinfín de funciones para la gestión de archivos que van desde las más elementales de apertura, lectura y cierre a otras más rebuscadas como el cálculo de espacio en el disco duro, tamaño del archivo, gestión de derechos de acceso.
![Page 3: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/3.jpg)
Manipulación de Archivos y Directorios en el Servidor
Funciones de gestión de archivos:
![Page 4: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/4.jpg)
Manipulación de Archivos y Directorios en el Servidor
Modos de apertura de archivos:
![Page 5: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/5.jpg)
Manipulación de Archivos y Directorios en el Servidor
Ejemplo 1:
En el ejemplo que se muestra a continuación se presenta una lectura secuencial para localizar dentro del texto una cadena cualquiera a la que, se le cambiará el formato para ponerla en negritas utilizando de la etiqueta <b>
![Page 6: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/6.jpg)
Manipulación de Archivos y Directorios en el Servidor
<?phpfunction negrita($path,$cadena){
//Iniciamos la variable$texto = "";//Abrimos el archivo en modo lectura$fp = fopen($path,"r");//Leemos linea por linea el contenido del archivowhile ($linea= fgets($fp,1024)){ //Sustituimos las ocurrencias de la cadena que buscamos $linea = str_replace($cadena,"<b>$cadena</b>",$linea); //Anadimos la linea modificada al texto $texto .= $linea;}return $texto;
}
![Page 7: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/7.jpg)
Manipulación de Archivos y Directorios en el Servidor
//Definimos el path y la cadena$path="escribe el camino de acceso a tu archivo";$cadena = "escribe tu cadena";
//Llamamos la funcion$texto = negrita ($path,$cadena);
//Mostramos el textoecho $texto;
?>
![Page 8: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/8.jpg)
Manipulación de Archivos y Directorios en el Servidor
Ejemplo 2: Actualizar un contador en un archivo
![Page 9: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/9.jpg)
Manipulación de Archivos y Directorios en el Servidor
function incremento_contador($archivo) { // $archivo contiene el numero que actualizamos
$contador = 0;//Abrimos el archivo y leemos su contenido$fp = fopen($archivo,"r");$contador = fgets($fp, 26);fclose($fp);//Incrementamos el contador++$contador;//Actualizamos el archivo con el nuevo valor$fp = fopen($archivo,"w+");fwrite($fp, $contador, 26);fclose($fp);echo "Este script ha sido ejecutado $contador veces";
}
![Page 10: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/10.jpg)
Manipulación de Archivos y Directorios en el Servidor
function incremento_contador($destino){ $abrir = fopen($destino,"r"); $cuenta = trim(fread($abrir,filesize($destino)));
if ($cuenta != "") $cuenta++; else $cuenta = 1; @fclose($abrir); $abrir = fopen($destino,"w"); @fputs($abrir,$cuenta);
@fclose($abrir);
}
![Page 11: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/11.jpg)
Manipulación de Archivos y Directorios en el Servidor
Funciones de gestión de directorios
![Page 12: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/12.jpg)
Manipulación de Archivos y Directorios en el Servidor
Ahora se presenta un ejemplo sencillo de lo que se puede hacer con estas funciones, se presenta un script de lectura que permite visualizar el contenido de un directorio:
//definimos el path de acceso$path = "mi/camino";//abrimos el directorio$dir = opendir($path);//Mostramos las informacioneswhile ($elemento = readdir($dir)){echo $elemento."<br>";}//Cerramos el directorioclosedir($dir);
![Page 13: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/13.jpg)
Manipulación de Archivos y Directorios en el Servidor
Métodos de la clase dir:
![Page 14: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/14.jpg)
Manipulación de Archivos y Directorios en el Servidor
//definimos el path de acceso$path="mi/camino/";
//instanciamos el objeto$dir=dir($path);
//Mostramos las informacionesecho "Directorio ".$dir->path.":<br><br>";
while ($elemento = $dir->read()){echo $elemento."<br>";}
//Cerramos el directorio$dir->close();
![Page 15: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/15.jpg)
Manipulación de Archivos y Directorios en el Servidor
<?php///rename(path_origen, path_destino); Renombra un archivo.
//Ejemplo:
$newname ="E:\sitios\cursophp\unidad_6\ejercicio_55.txt";rename("E:\sitios\cursophp\unidad_6\ejercicio_5.txt","$newname");?>
![Page 16: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/16.jpg)
Manipulación de Archivos y Directorios en el Servidor
unlink(path_a_borrar); Elimina un archivo.
rmdir(directorio_a_borrar); Elimina un directorio (debe estar vacío)
mkdir(path_a_crear); Crea un directorio Nuevo.
copy(path_origen, path_destino); Copia un archivo o varios.
![Page 17: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/17.jpg)
Manipulación de Archivos y Directorios en el Servidor
Ejercicio 6:
Subir un Archivo a una ruta especifica del equipo
![Page 18: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/18.jpg)
Manipulación de Archivos y Directorios en el Servidor
Ejercicio 6:
<body><form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1"> <p align="center">Archivo <input name="archivo" type="file" id="archivo"> </p> <p align="center"><input name="boton" type="submit" id="boton" value="Enviar"></p></form> </body>
![Page 19: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/19.jpg)
Manipulación de Archivos y Directorios en el Servidor
<?php$path = "E:/sitios/cursophp/unidad_6/";
if($boton) { if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) { echo "origen--->" . $HTTP_POST_FILES['archivo']['tmp_name'] . "<br>" ; echo "Destino--->" . $path . $HTTP_POST_FILES['archivo']['name'] . "<br>" ; copy($HTTP_POST_FILES['archivo']['tmp_name'], $path . $HTTP_POST_FILES['archivo']['name']); $subio = true; }if($subio) { echo "El archivo subio con exito";} else { echo "El archivo no cumple con las reglas establecidas";}die();}?>
![Page 20: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/20.jpg)
Manipulación de Archivos y Directorios en el Servidor
Lo primero que tenemos es un bloque if que detecta si se envió
el formulario, para esto preguntamos si la variable $boton esta
presente, si esta presente quiere decir que se envió el
formulario entonces entramos en el segundo if que comprueba
que se haya enviado algún archivo, si se envió el archivo se
copia (copy) desde el directorio temporario donde subió al lugar
donde queremos alojarlo, en este caso al mismo directorio del
script PHP.
![Page 21: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/21.jpg)
Manipulación de Archivos y Directorios en el Servidor
Si todo salió bien se establece la variable $subio a true para
que luego sepamos que mensaje mostrarle al usuario "El
archivo subio con éxito" o "El archivo no cumple...".
![Page 22: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/22.jpg)
Manipulación de Archivos y Directorios en el Servidor
Que es el $HTTP_POST_FILES ?
Seguro que observaron que esta variable aparece muy seguido en nuestro script, la misma es una variable del tipo matriz (array) predefinida de PHP que contiene la información del archivo que estamos subiendo, por ejemplo...
$HTTP_POST_FILES['archivo']['tmp_name'] - Guarda la ruta donde esta alojado temporalmente el archivo.
$HTTP_POST_FILES['archivo']['name'] - Guarda el nombre del archivo (ej: "dibujo.gif").
![Page 23: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/23.jpg)
Manipulación de Archivos y Directorios en el Servidor
Que es el $HTTP_POST_FILES ?
Para solucionar esto utilizaremos el $HTTP_POST_FILES que contiene mas información del archivo enviado, veamos... $HTTP_POST_FILES['archivo']['size'] – Devuelve el tamaño del archivo (ej: 25445)
$HTTP_POST_FILES['archivo']['type'] – Devuelve el tipo de archivo.(ej: image/gif)
![Page 24: Manipulación de Archivos y Directorios en el Servidor Temas: Creación, lectura, escritura, borrado de archivos y directorios](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4a21a28abb57c92d983/html5/thumbnails/24.jpg)
Manipulación de Archivos y Directorios en el Servidor
<?php //Este script restringe la subida a archivos GIF menores a 80k, if($boton) { if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) { if($HTTP_POST_FILES['archivo']['size'] < 85000) { if($HTTP_POST_FILES['archivo']['type']=="image/gif") { copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']); $subio = true; } } } if($subio) { echo "El archivo subio con exito"; } else { echo "El archivo no cumple con las reglas establecidas"; } die(); } ?>