Como abrir y cerrar archivos PHP Para abrir un archivo, es necesaria la siguiente linea de codigo. <?php // para abrir archivo miarchivo = @fopen("archivo.txt", "r") or die ("El archivo solicitado no existe"); ?> Al ser ejecutado, este Script nos mostrara al archivo "archivo.txt" o en caso de que no exista o de que este en una ubicacion diferente, aparecera el mensaje de error "El archivo solicitado no existe". Para cerrar el archivo, lo cual debe ser hecho despues de haber terminado de usarlo, es necesario utilizar las siguientes lineas de codigo: // para cerrar archivo fclose($miarchivo); Creación de Archivos: Hay una forma bastante rápida en PHP para crear un archivo de forma temporal, en donde almacenar cualquier tipo de datos, usando la función tempnam. <?php //creacion de archivo temporal $archivotemp = tempnam (“C:\\temp\\”, “tmp”); ?> aquí se crea el archivo temporal con una ruta predeterminada y la extensión tmp es posible cambiar esta extensión a txt, html, etc. Otro metodo para crear archivos es utilizando el indicador “w+” como se ve a continuación. $miarchivo = fopen(“temporal.txt”, “w+”) or die (“El archive no existe o no pudo ser abierto”) Aquí se crea el archivo temporal.txt como archivo de lectura-escritura, hay varios indicadores que se le pueden asignar a la función fopen: r : Solo lectura. r+ : Lectura y escritura. w : Solo escritura. w+ : Lectura y escritura. Si el archivo ya existe, se elimina el contenido, si no existe se crea un nuevo archivo. Escribir líneas en Archivos: Ejemplo: <?php //abrir archivo $miarchivo = @fopen(“hobby.txt”, “a”) or die (“El Archivo no existe o no pudo ser abierto”); //insertar linea fputs($miarchivo, “futbol\r\n”); //cerrar archivo @fclose($miarchivo); ?> podemos observar que se utiliza la función fputs para insertar la linea nueva (la palabra futbol). La función fputs, añade una cadena de datos, cada uno de estos datos tiene un tamaño en bytes. Esta función agrega datos en función de su tamaño en bytes, normalmente las cadenas son de tamaño muy pequeño, pero en casos en que el tamaño de la cadena sea muy grande, es necesario dividir los datos de la cadena en datos mas pequeños, e ir agregando fragmento por fragmento, esto es posible a través de la función fputs. Leer una línea de un archivo. <?php $cuenta_lineas = 0; //valor de inicio $linea_numero = 1; // numero de linea a buscar //abrir archivo $archivo = @fopen(“hobby.txt”, “r”) or die (“el archivo no existe o no pudo ser abierto”); while (!feof($archivo)) { //para obtener la linea del archivo $linea_archivo = fgets($archivo , 50); //comprueba el número de línea activo if ($cuenta_lineas == $linea_numero) { //muestra la linea de archivo print(“$linea_archivo”); break; } $cuenta_linea++; } //cerrar archivo @fclose($archivo); ?> En este ejemplo, se recorre un archivo y se lee linea por linea, hasta alcanzar el numero de linea deseado. Es necesario empezar por especificar el número de la linea que se desea localizar. Como primero, al ejecutarse el código, este cuenta las lineas del archivo, aquí ajustamos el contador a 0 de esta manera, cada que el código lee una linea del archivo, este contador incrementa. cuenta_linea = 0; a través de la instrucción while, el archivo es recorrido acompañado de la función fgets. El bucle while es ejecutado un determinado numero de veces hasta que llega al final del archivo, con la función feof, se indica que el archivo ha llegado a su fin. while (!feof($archivo)) { Para comprobar cada número de línea, es necesario: $linea_archivo = fgets($archivo , 50); if ($cuenta_lineas == $linea_numero) { Al llegar al número deseado, este se imprime, y el while llega a su fin. print(“$linea_archivo”); break; Leer los caracteres de un archivo. Para leer los caracteres de un archivo, se utilizan métodos muy similares. <?php $archivo = @fopen(“hobby.txt”, “r”) or die (el archivo no puede ser abierto o leido); do { //Obtiene los caracteres de un archivo $caracteres = fgetc($archivo); //imprime cada uno de los caracteres un archivo print(“$caracteres<br>”); } while (!feof($archivo)); @fclose($archivo); ?> Aquí, es utilizada la función fgetc para leer caracteres y no lineas, luego imprime los caracteres a medida que los obtiene. Creación y eliminación de archivos. Para crear y eliminar archivos, es necesario utilizar el siguiente código. <? php //leer directorio $Informaciondir = “C:\\temp\\”; //crear directorio $creardir = “C:\\temp\\temp2\\”; mkdir($creardir, 0700); //abre directorio $diraleer = opendir($informaciondir); //bucle while ($info = readdir($diraleer)) { //imprime print(“$info<br>”); } //cerrar directorio closedir($diraleer); //eliminar rmdir($creardir); ?> En este script podemos observar que se establece primero el directorio que va a ser leído y el que va a ser creado. //leer directorio $Informaciondir = “C:\\temp\\”; //crear directorio $creardir = “C:\\temp\\temp2\\”; Después de esto se crea el directorio por medio del comando mkdir mkdir($creardir, 0700); Luego de haberse creado el directorio, se enumera el contenido del directorio (se utiliza el mismo método de bucle que en el script del capitulo anterior). //bucle while ($info = readdir($diraleer)) { //imprime print(“$info<br>”); } En la siguiente parte se cierra el directorio y se elimina con la función rmdir. //cerrar directorio closedir($diraleer); //eliminar rmdir($creardir); Trabajo en archivos y directorios. En php es posible trabajar con los archivos de diferentes maneras, se pueden mover, copiar, cambiar de nombre y eliminar fácilmente. A la hora de mover y copiar, se utilizan procedimientos similares. Como sabemos, al mover un archivo, este lo traslada de una ubicación a otra, y al copiarlo lo duplica y después mueve uno de los dos archivos. Para copiar un archivo es necesario utilizar las siguientes líneas de código: <?php $dirraiz = “C:\\temp\\”; $archivoacopiar = “temp.tmp”; $copiadearchivo = “temp_copia.tmp”; $nombre_archivoacopiar = $dirraiz . $archivoacopiar; $nombre_copiaarchivo = $dirraiz . $copiadearchivo; copy($nombre_archivoacopiar, $nombre_copiaarchivo); ?> Esta línea del código establece el directorio en el que los archivos estarán localizados. $dirraiz = “C:\\temp\\”; Lo siguiente es establecer el nombre del archivo a copiar, y el nombre que tendrá el archivo copiado. $archivoacopiar = “temp.tmp”; $copiadearchivo = “temp_copia.tmp”; Se establecen entonces variables que contienen el nombre del archivo a copiar, y el nombre del archivo en el que se va a copiar. $nombre_archivoacopiar = $dirraiz . $archivoacopiar; $nombre_copiaarchivo = $dirraiz . $copiadearchivo; A continuación las líneas para copiar el archivo. copy($nombre_archivoacopiar, $nombre_copiaarchivo);