|
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 fopen, fclose, fgets y fwrite - 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 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 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"); } Borra el fichero especificado en nombre. En caso de error devolverá FALSE. 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. 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); Fija el apuntador de posición del fichero especificado en nombre_fichero al comienzo del mismo. 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
Sólo los usuarios registrados pueden escribir comentarios. Por favor, valídate o regístrate. Powered by AkoComment 2.0! |