Inicio arrow Artículos arrow php arrow Manual PHP+MySQL (IX - Acceso a ficheros)
Menú Principal
Lo más leído
Consigue Firefox
Usuarios
957 registrados
1 hoy
1 esta semana
58 este mes
Último: czar...
Formulario de acceso



... Regenerar clave
... Registro
Manual PHP+MySQL (IX - Acceso a ficheros) Imprimir E-Mail
sábado, 04 de noviembre de 2006

Como en cualquier lenguaje de programación que se precie, PHP pone a disposición del programador una serie de funciones predefinidas que permitirán al programador la creación, borrado y manipulación de ficheros de datos. 


Las funciones básicas fopenfclosefgetsfwrite

  • fopen (nombre, modo, [include_path])

La función fopen se encarga de abrir el archivo especificado con el parámetro nombre (en una dirección local o de internet) y en la modalidad expuesta con el parámetro modo. Con el parámetro adicional include_path indicaremos que el fichero a abrir se encuentra en alguna de las rutas definidas por include_path en el fichero de configuración php.ini.

fopen devuelve un valor númerico (indicador de archivo) que se usará posteriormente para referenciar el fichero. Si la apertura falla, se recibe un valor FALSE.

Los modos de apertura del fichero (parámetro modo) serán alguno de los siguientes:

  • r - Abre para sólo lectura; sitúa el apuntador del fichero al comienzo del mismo.
  • r+ - Abre para lectura y escritura; situa el apuntador del fichero al comienzo del fichero.
  • w - Abre para sólo escritura; sitúa el apuntador del fichero al comienzo del fichero y trunca el fichero con longitud cero. Si el fichero no existe, trata de crearlo.
  • w+ - Abre el fichero para lectura y escritura; sitúa el apuntador del fichero al comienzo del fichero y trunca el fichero con longitud cero. Si el fichero no existe, trata de crearlo.
  • a - Abre sólo para escribir (añadir); sitúa el apuntador del fichero al final del mismo. Si el fichero no existe, trata de crearlo.
  • a+ - Abre para lectura y escritura (añadiendo); sitúa el apuntador del fichero al final del mismo. Si el fichero no existe, trata de crearlo. 

Los modos r, r+, w, w+ colocan el puntero de lectura/escritura a principio del fichero, los modos a, a+ lo colocan al final.

Veamos a continuación un ejemplo de uso de la función:

$fp = fopen("/home/rasmus/file.txt", "r");
$fp = fopen("http://www.php.net/", "r");
$fp = fopen("ftp://user: Esta dirección de correo electrónico está protegida contra los robots de spam, necesita tener Javascript activado para poder verla /", "w");

Siempre es conveniente aplicar algún mecanismo de control que nos indique si el fichero se abrió con éxito o no:

if ( ! fopen("http://www.php.net/", "r")) {
echo "El archivo no se puede abrir\n";
exit;
}

  • fgets (indicador, longitud)

Esta función obtiene una línea del fichero apuntado por el parámetro indicador y la devuelve como cadena de texto. La longitud de la cadena a leer se establece mediante el parámetro longitud, aunque la lectura puede finalizar si se llega al puntero de final de línea o al puntero de final de fichero (EOF).

El ejemplo siguiente abre un fichero y va imprimiendo cada una de sus líneas:

$fd = fopen ("/home/casa/file.txt", "r");
while (!feof($fd)) {
    $buffer = fgets($fd, 4096);
    echo $buffer;
}
fclose ($fd);

  • fwrite (indicador, cadena, [longitud])

Con la función fwrite escribiremos una cadena de texto (especificada con el parámetro cadena) en el fichero apuntado por el parámetro indicador. Si se indica algo en el parámetro adicional longitud, sólo se escribirán los caracteres especificados, aunque no haya finalizado la cadena. Esta función es idéntica y se comporta de igual forma que fputs().

Veamos un ejemplo sencillo de escritura en un fichero:

$archivo = fopen("/home/casa/file.txt" , "w");
if ($archivo) {
fwrite ($archivo, "0123456789");
}
fclose ($archivo);

  • fclose (indicador)

fclose cierra el apuntador al fichero abierto y lo libera. Devuelve TRUE si el cierre se ha hecho efectivo y FALSE si no se ha podido cerrar por algún motivo.


Operaciones directas con copy, unlink, rename, mkdir, rmdir, rewind y file_exists

  • copy (origen, destino)

Esta función hace una copia del fichero desde origen a destino. Si la operación resulta satisfactoria devuelve TRUE. En cualquier otro caso, devuelve FALSE.

if (!copy($file, $file.'.bak')) {
    print("Fallo al copiar $file...<br>\n");
}

  • unlink (nombre)

Borra el fichero especificado en nombre. En caso de error devolverá FALSE.

  • rename (origen, destino)

La función rename tratará de renombrar origen como destino. Devolverá TRUE o FALSE dependiendo de si ha tenido éxito o no.

  • rmdir (nombre_directorio)

La función rmdir borra el directorio apuntado en nombre_directorio. Para que la operación se lleve a cabo, el directorio ha de estar vacío. Si ocurre un error, la función devolverá FALSE.

  • mkdir (nombre, modo)

Crea un directorio especificado en el parámetro nombre y con los permisos prefijados en el parámetro modo (como un número octal). Por ejemplo:

mkdir ("/path/to/my/dir", 0700);

  • rewind (nombre_fichero)

Fija el apuntador de posición del fichero especificado en nombre_fichero al comienzo del mismo.

  • file_exists (nombre)

Esta función devuelve TRUE si el fichero especificado en nombre existe y devuelve FALSE si no existe.


Lista completa de funiones

Hasta ahora hemos repasado las funciones más importantes que nos ofrece PHP para la manipulación de ficheros y directorios. Sin embargo, existen una gran número de funciones adicionales que pueden resultar útiles en un momento dado y que no está de más reflejarlas a modo de apunte. Si queremos información más detallada sobre las funciones que no hemos explicado en este capítulo, sería una buena idea buscar información en las páginas de documentación oficial de PHP (http://www.php.net/docs.php).

Repasemos ahora todas las funciones de PHP para manejar el sistema de ficheros:

basename --  Devuelve la parte del path correspondiente al nombre del archivo
chgrp -- Cambia el grupo de un archivo
chmod -- Cambia permisos de un archivo
chown -- Cambia el propietario de un archivo
clearstatcache -- Limpia la cache de estado de un archivo
copy -- Copia un archivo
delete -- Vea unlink() o unset()
dirname -- Devuelve la parte del path correspondiente al directorio
disk_free_space -- Devuelve el espacio disponible en el directorio
disk_total_space -- Devuelve el tamaño total de un directorio
diskfreespace -- Alias de disk_free_space()
fclose -- Cierra el apuntador a un archivo abierto
feof -- Verifica si el apuntador a un archivo está al final del archivo
fflush -- Vacía la salida hacia un archivo
fgetc -- Obtiene un caracter del archivo apuntado
fgetcsv -- Obtiene una linea del archivo apuntado y extrae los campos CSV
fgets -- Obtiene una línea desde el apuntador de archivo
fgetss -- Obtiene una lína desde el apuntador de archivo y elimina las etiquetas HTML
file_exists -- Verifica si un archivo o directorio existe
file_get_contents -- Lee un archivo entero en una cadena
file_put_contents -- Escribir una cadena sobre un archivo
file -- Lee un archivo entero hacia una matriz
fileatime -- Obtiene la hora del último acceso al archivo
filectime -- Obtiene la hora de modificación del inode del archivo
filegroup -- Obtiene el grupo del archivo
fileinode -- Obtiene el inode del archivo
filemtime -- Obtiene la hora de modificación del archivo
fileowner -- Obtiene el dueño del archivo
fileperms -- Obtiene los permisos del archivo
filesize -- Obtiene el tamaño del archivo
filetype -- Obtiene el tipo de archivo
flock -- Aviso de bloqueo de archivos portable
fnmatch -- Comparar un nombre de archivo contra un patrón
fopen -- Abre un archivo o URL
fpassthru -- Imprime todos los datos restantes en un apuntador de archivo
fputcsv --  Formatea la línea como CSV y la escribe en el archivo apuntado
fputs -- Alias de fputs()
fread -- Lectura de archivos segura con material binario
fscanf -- Procesa la entrada desde un archivo de acuerdo a un formato
fseek -- Realiza una búsqueda sobre un apuntador de archivo
fstat -- Obtiene información sobre un archivo usando un apuntador de archivo abierto
ftell -- Indica la posición de lectura/escritura del apuntador de archivo
ftruncate -- Trunca un archivo a la longitud dada
fwrite -- Escritura sobre archivos, segura con material binario
glob -- Encontrar nombres de ruta coincidentes con un patrón
is_dir -- Indica si el nombre de archivo es un directorio
is_executable -- Indica si el archivo es ejecutable
is_file -- Indica si el archivo es un archivo regular
is_link -- Indica si el archivo es un enlace simbólico
is_readable -- Indica si es posible leer el archivo
is_uploaded_file -- Indica si un archivo fue cargado a través de HTTP POST
is_writable -- Indica si el nombre de archivo es escribible
is_writeable -- Alias de is_writable()
link -- Crea un enlace duro
linkinfo -- Consigue información sobre un enlace
lstat -- Entrega información sobre un archivo o enlace simbólico
mkdir -- Crea un directorio
move_uploaded_file -- Mueve un archivo cargado a una nueva ubicación
parse_ini_file -- Procesar un archivo de configuración
pathinfo -- Devuelve información sobre la ruta de un archivo
pclose -- Cierra un apuntador de archivo de proceso
popen -- Abre un apuntador de archivo de proceso
readfile -- Imprime un archivo
readlink -- Devuelve el objetivo de un enlace simbólico
realpath -- Devuelve el nombre de ruta absoluto simplificado
rename -- Renombra un archivo o directorio
rewind -- Retroceder la posición de un apuntador de archivo
rmdir -- Elimina un directorio
set_file_buffer -- Alias de stream_set_write_buffer()
stat -- Entrega información sobre un archivo
symlink -- Crea un enlace simbólico
tempnam -- Crear un archivo con un nombre único
tmpfile -- Crea un archivo temporal
touch -- Establece la hora de acceso y modificación de un archivo
umask -- Cambia la umask actual
unlink -- Elimina un archivo


Comentario[s]

Sólo los usuarios registrados pueden escribir comentarios.
Por favor, valídate o regístrate.

Powered by AkoComment 2.0!

 
Siguiente >