Trabajar con archivos y directorios en PHP

En muchas ocasiones se desea saber la información sobre un archivo o directorio. PHP tiene funciones que nos permitirán trabajar con archivos o directorios a lo largo de nuestro script.



1. Obtener información de un archivo

La siguiente tabla muestra unas cuantas funciones que nos ofrece PHP para trabajar con archivos:

FunciónDescripción
is_file("archivo")Comprueba si es un archivo
is_dir("archivo")Comprueba si es un directorio
is_executable("archivo")Comprueba si es un archivo ejecutable
is_writable("archivo")Comprueba si se puede escribir en el archivo
is_readable("archivo")Comprueba si se puede leer el archivo
fileatime("archivo")Comprueba la ultima fecha de acceso al archivo
filectime("archivo")Comprueba la fecha en que se creo el archivo
filemtime("archivo")Comprueba la ultima fecha de modificación del archivo
filegroup("archivo")Comprueba la identidad del grupo del archivo
fileowner("archivo")Comprueba la identidad del propietario del archivo
filesize("archivo")Comprueba el tamaño del archivo
filetype("archivo")Comprueba el tipo de archivo
basename("archivo")Devuelve el nombre de archivo de un directorio
dirname("archivo")Devuelve el nombre del directorio

Otra posibilidad que no esta expuesta en la tabla seria la función "pathinfo()" y su uso podría ser el siguiente:
$info = pathinfo("/home/User/Documentos/archivo.txt");
Tras utilizar el código nos encontraremos con que la variable "$info" pasa a ser un array que contiene 3 elementos y son los siguientes:

  • $info [dirname] = /home/User/Documentos
  • $info [basename] = archivo.txt
  • $info [extension] = txt

Un buen uso de las funciones citadas en la tabla es a través de condicionales. Es una buena practica comprobar las cosas antes de crear, copiar, eliminar, ... archivos.



2. Copiar, renombrar y eliminar archivos

2.1 Copiar


Para copiar archivos utilizaremos la siguiente función:
copy("original.txt", "copia.txt");
Donde "original.txt" es el archivo que contiene los datos a copiar. Y "copia.txt" sera el nuevo archivo donde se copien los datos. Si en alguna ocasión el nuevo archivo ya existe, PHP lo sobreescribirá sin preguntar.

Otra forma de copiar un archivo utilizando una ruta personalizada podría ser la siguiente:
copy("original.txt", "Documentos/copia.txt");

2.2 Renombrar

A través de la siguiente función podremos renombrar archivos:
rename("original.txt", "nuevo.txt");
Si en algún caso el nuevo nombre del archivo ya existe, PHP lanzara un aviso y no renombrara el archivo.


2.3 Borrar

Para borrar archivos utilizaremos la siguiente función:
unlink("archivo.txt");
Si el archivo a borrar no existe, la función se ejecutara igualmente como si borrara el archivo y continuara la ejecución del script.



3. Crear directorios

Para crear directorios se utiliza la siguiente función:
mkdir("directorio");
De esta manera se crea el directorio en el lugar donde se encuentre el script que ejecute dicha función. Si en algún caso el directorio ya existe, PHP lanzara un aviso.

Para ubicar un nuevo directorio en una ruta concreta lo haremos de la siguiente manera:
mkdir("/home/Documentos/directorio");

Y para terminar este punto, podríamos cambiar el directorio actual de trabajo a través de la siguiente función:
chdir("directorio");


3.1 Mostrar archivos de un directorio

Primero deberemos crear un gestor de directorios de la siguiente manera:
$lista = opendir("/home/Documentos");
Si en algún momento el directorio no existe, PHP lanzara un aviso. Continuando con el ejemplo ya tendríamos abierto el directorio para su lectura cargando los archivos en la variable "$lista". Ahora solo nos queda mostrar esos archivos.

Para mostrar un archivo lo podríamos hacer de la siguiente manera:
$archivo = readdir($lista);

Por lo tanto para mostrar todos los archivos podríamos utilizar un bucle while:
while ($archivo = readdir($lista) {
    echo $archivo;
    echo "<br/ >";
}






No hay comentarios:

Publicar un comentario