Gestión de archivos por PHP

Recopilamos algunas funciones básicas para la gestión de archivos con PHP.
El tratamiento de archivos resulta ser una práctica muy común en cualquier sitio web. Muy a menudo nos vemos en la necesidad de procesar un texto para cambiarle el formato, buscar una cadena en su interior o cualquier otro tipo de operación.

PHP propone 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...

En este artículo pretendemos mostraros cuáles son las funciones más esenciales para el tratamiento de archivos para posteriormente ejemplificarlas en un par de scripts que os pueden resultar útiles:

Funciones de gestión de archivos
Función Descripción Sintaxis
copy Copia un archivo copy($origen,$destino)
rename Cambia el nombre del archivo de $antes a $despues rename($antes,$despues)
unlink Borra el archivo unlink($archivo)

Funciones para la lectura de archivos
Función Descripción Sintaxis
fopen Abre un archivo y le asigna un identificador id. Veremos el modo más adelante $id = Fopen($archivo, $modo)
fgets Lee una línea de un archivo hasta un numero máximo de caracteres fgets($id,$max)
fwrite Escribe una cadena dentro del archivo fwrite($id, $cadena)
fseek Avanza o retrocede el puntero del archivo un cierto numero de posiciones fseek($id,$posiciones)
feof Comprueba si el puntero que lee el archivo ha llegado al final feof($id)
fpassthru lee completamente el archivo y lo muestra fpassthru($id)
fclose Cierra el archivo abierto previamente fclose($id)

Las operaciones más elementales, copia, borrado y cambiar el nombre, requieren únicamente el nombre (y path) del archivo sobre el cual se ejerce la operación. Para operaciones más complejas, como la lectura de líneas o la escritura de texto dentro del archivo, se requiere de una previa apertura del archivo al cual le asignaremos un indentificador $id.

Una vez abierto el archivo, podremos desplazarnos a lo largo de él por medio de un puntero imaginario que avanza o retrocede por las líneas de texto y mediante el cual nos situaremos en el lugar escogido para insertar, modificar o simplemente copiar una cadena.

Existen distintos modos de apertura que nos permiten definir las acciones que podemos realizar sobre el archivo. Aquí os mostramos los diferentes modos que, como veréis, son de lo más variado:

Modos de apertura de archivos
Sintaxis Descripción
'r' Sólo lectura
'r+' Lectura y escritura
'w' Sólo escritura
'w+' Lectura y escritura. Suprime el contenido anterior si se escribe. El archivo es creado si no existe.
'a' Sólo escritura. El archivo es creado si no existe y el puntero se coloca al final.
'a+' Lectura y escritura. El archivo es creado si no existe y el puntero se coloca al final.

A notar que si tratamos con archivos en binario hemos de colocar una b delante del modo (ej. ba, bw+,...)

Recordamos que esta lista no es más que una recopilacion y que muchas otras funciones relacionadas pueden sernos también útiles.

Nota:También puedes profundizar más en la gestión de archivos con nuestro manual Gestión de archivos en PHP

Autor

Rubén Alvarez

Redactor de DesarrolloWeb.com

Compartir

Comentarios

Miguel

14/7/2005
Sólo quería comentar que el link relativo a las funciones de manejo de archivos pueden ser consultadas también en castellano en la siguiente dirección.

< a href="http://www.php.net/manual/es/ref.filesystem.php" target=_blank>http://www.php.net/manual/es/ref.filesystem.php

Gracias

Lore

12/9/2006
Ana, para subir un archivo por medio del form tenes que usar el move_uploaded_file, no el copy, ya que este (por lo menos hasta lo que yo tengo entendido) solo funciona para operaciones con archivos ya dentro del servidor.

Juan

16/7/2010
Buen Articulo
buen articulo sobre el manejo de archios en php lo voy a implementar con manejo de xml
sencillosanuncios.22web.net/modulo_lista_anuncios_eviaremails/

ivansv

18/4/2011
Ayuda
Soy totalmente nuevo en esto del php, es lo primero que voy hacer, haber tengo que web donde la gente sube imágenes, la web las re-nombra numerándolas , lego en el pedido tengo el numero de foto y el texto que quiere el cliente. la url de la imagen esta clara ...images/uploads/xxx.jpg
Bien ahora tengo hecho un artivo de html, lo abrimos en y modificamos la url, cerramos abrimos con el crome y se nos abre la imagen, ahí ya la copiamos y pegamos en el editor....

Bien quiero hacer una pagina con un campo de texto donde escribir la ruta de la imagen y que se habrá. Estoy haciendo pruebas y no consigo nada.
¿ como puedo hacer esto?

jhjgkj

26/3/2012
gdhdg
dghdghdg

Anonimo

26/10/2012
Respuesta sobre el tema de formulario para url de imagen
Nose si el tema tiene tiempo o no, pero como aunque esta info ya la sabia igualmente me parecio util te respondere tu duda:

Crea un from action de una pagina PHP que muestre las imagenes, ayudate de la funcion --> imagecreatefromjpeg($dirimage);

Ahora suponiendo que la página que muestra las imagenes se llame por ejemplo "imagenes.php"

solo deves hacer un formulario que envie la variable con el nombre de la imagen, ya sea por get o post, una ved hiciste esto, haces que la pagina de la imagen recoja el nombre y añada el directorio predefinido para las imagenes, por ejemplo C:userMis imagenes

quedaria algo asi la recojida del fichero en el php:

$dirimage = "C:userMis imagenes".$_POST['imgname'];


Te recomiendo el POST por la seguridad en el envio, te advierto que por PHP solo puedes mostrar imagenes PNG, JPEG y derivadas y GIF, hay otras extensiones pero yo no las he visto en editores de imagen tales como photoshop disponibles...


Un saludo.