====== Teoría 6 (adicional) ====== ===== Archivos ===== [[http://www.unicen.edu.ar/introprog/Intro2/index.html|Concepto de Archivos - Primer tema de la página.]] '; // file_exists: Informa si existe o no ese archivo if(file_exists('datos.txt')) echo 'datos.txt EXISTE.' . "\n"; if(!file_exists('xxxxx.txt')) echo 'xxxxx.txt NO EXISTE.' . "\n"; // filesize: Cantidad de caracteres de un archivo echo 'El tamaño de datos.txt es: ' . filesize('datos.txt') . "\n"; // file_get_contents: Obtiene todo el texto de un archivo (file_put_contents) echo file_get_contents('datos.txt'); // Salta de línea? // file: Pasa todo el texto de un archivo a un arreglo (1 elemento por línea) print_r(file('datos.txt')); // is_readable: Existe y se puede leer. if(is_readable('datos.txt')) echo 'datos.txt se puede leer.' . "\n"; // is_writeable: Existe y se puede escribir. if(is_writeable('datos.txt')) echo 'datos.txt se puede modificar.' . "\n"; // Archivo de texto // fopen (archivos o URL), ver segundo parametro r,w,a,x,+ // r: el archivo DEBE existir. // w: INICIALIZA al archivo. // a: Se posiciona al final, si el archivo no existe lo crea. // x: Crea al archivo, NO debe existir. $archivo = fopen('datos.txt', 'w'); if ($archivo == FALSE) { print "ERROR: No se pudo abrir el archivo ! ! !\n"; } else { fputs($archivo,"Renglon a\n"); fputs($archivo,"Renglon 2\n"); fputs($archivo,"Renglon 3\n"); fputs($archivo,"Renglon 4\n"); fclose($archivo); } // Lectura secuencial de archivo y agregado de renglones al final $archivo = fopen('datos.txt', 'r+'); if($archivo) { $renglon = fgets($archivo); // Lee texto, incluye el \n // fread: similar pero para binario y con long. obligatoria. while(!feof($archivo)) { // Fin del archivo? La próxima lectura dará error? print $renglon; $renglon = fgets($archivo); } fputs($archivo,"Final."); fclose($archivo); } // Lectura secuencial y modificacion de datos en el medio del archivo $archivo = fopen('datos.txt', 'r+'); if($archivo) { $posicion = 0; $renglon = fgets($archivo); // Lee texto, incluye el \n // fread: similar pero para binario y con long. obligatoria. while(!feof($archivo)) { // Fin del archivo? La próxima lectura dará error? print $renglon; if(substr($renglon,0,9)=='Renglon 2') { fseek($archivo,$posicion); fputs($archivo,"RENGLON 2"); // alias de fwrite //fputs($archivo,"RENGLON 2 Y SUGUE PISANDO EL RESTO"); // El arch continua con igual longitud. } $posicion = ftell($archivo); // ftell -> posicion (0 a filesize($filename) ) $renglon = fgets($archivo); } fclose($archivo); } // Utilización de fseek y fputs para posicionarse, leer y escribir. $archivo = fopen('datos.txt', 'r+'); if($archivo) { fseek($archivo,4); print fread($archivo,3); fseek($archivo,4); fputs($archivo,"LON"); fclose($archivo); } // El fputs no funciona al medio de un archivo si no hay un fseek antes. $archivo = fopen('datos.txt', 'r+'); if($archivo) { print fread($archivo,3) . "\n\n"; fseek($archivo,ftell($archivo)); fputs($archivo,"GLO"); fclose($archivo); print file_get_contents('datos.txt'); } // Posicionarse al principio del archivo $archivo = fopen('datos.txt', 'r+'); if($archivo) { print fread($archivo,3) . "\n\n"; fseek($archivo,ftell($archivo)); fputs($archivo,"GLO"); rewind($archivo); // Igual a fseek($archivo, 0) fputs($archivo,'r'); fclose($archivo); print file_get_contents('datos.txt'); } echo ''; ?>