Cuando trabajamos con archivos desde PHP nos encontramos que muchas veces necesitamos funciones propias del sistema operativo para manejar cambios de nombre, recorrer directorios, cambiar permisos…
PHP contiene unas funciones para realizar estas tareas de forma interna sin que sea necesario usar instrucciones del sistema para estos efectos. En este artículo enumero algunas de las funciones que encuentro más interesantes.
Debo remarcar que la lista inicial la encontré en DesarrolloWeb hace ya un tiempo, pero perdí la pista al artículo. Así que para mantener una copia de ese útil listado lo publico aquí.
Se debe tener también en cuenta que todos los scripts en PHP se ejecutan con un usuario del tipo “nobody” o “wwwagent”, es decir, un usuario que en la mayoría de los casos no es el propietario de los archivos que se subieron por FTP, por lo que deberemos tener permisos de escritura sobre los archivos con los que queremos trabajar.
Para cambiar los permisos en archivos y directorios debemos recordar que se usa la notación octal, y ésta en PHP se escribe con un número de 4 cifras, no de 3 como es habitual en entornos *IX. La razón es sencilla: PHP identifica los números octales con un cero “0″ delante para diferenciarlos de los números decimales.
Cambiar los permisos de un archivo
chmod (’El_archivo.xxx’,0777);
Cambiar el nombre del propietario de un archivo
chown (’El_archivo.xxx’,'Mi nombre’);
Copiar un archivo
copy(’El_archivo.xxx’,'/nuevo_directorio/’);
Optener el directorio inicial de un archivo o subdirectorio
dirname(’directorio_raiz/subdirectorio’);
Obtener el espacio disponible en un directorio en Bytes.
disk_free_space(’directorio’);
Verificar si un archivo existe
file_exists (’archivo.xxx’);
Obtener la hora del ultimo acceso a un archivo
fileatime(’archivo.xxx’);
Obtener la hora de la ultima modificación de un archivo
filemtime(’archivo.xxx’);
Obtener el dueño de una archivo
fileowner (’archivo.xxx’);
Obtener los permisos de una archivo
fileperms (’archivo.xxx’);
Obtener el tamaño en bytes de un archivo
filesize(’archivo.xxx’);
Obtener el tipo de archivo
filetype(’archivo.xxx’);
Abrir un archivo o dirección URL
fopen (’archivo.xxx’,'r’);
Saber si un archivo es ejecutable
is_executable(’archivo.xxx’);
Indicar si el archivo se puede leer
is_readable(’archivo.xxx’);
Indica si un archivo fue subido mediante HTTP POST upload
is_uploaded_file (’archivo.xxx’);
Saber si un archivo se puede escribir
is_writable (’archivo.xxx’);
Crea un directorio con permisos.
mkdir(’/nuevo_directorio’,0777);
Mover un archivo cargado a través de HTTP POST de un directorio a otro
predefinido
move_uploaded_file (’directorio/archivo.xxx’,'directorio2/archivo.xxx’);
Leer el contenido resultante de archivo
file_get_contents(’el_archivo.xx’);
Renombrar un archivo o directorio
rename(”/tmp/archivo_temp.txt”, “/home/usuario/login/docs/mi_archivo.txt”);
Eliminar un directorio
rmdir(’/directorio’);
Crear un archivo temporal
tmpfile();
Eliminar un archivo
unlink(’ARCHIVO.XXX’);
Podéis encontrar la información completa sobre el acceso al sistema de archivos en PHP en la
documentación oficial.
Escribe un Comentario