Herramientas de usuario

Herramientas del sitio


programacionphp2:teorias:teoria6

Tabla de Contenidos

Teoría 6

Archivos

Concepto de Archivos - Primer tema de la página.

<?php 
echo '<pre>'; 
// 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 '</pre>'; 
?>

Recursión

Concepto de Recursión - Quinto tema de la página.

<?php
echo '<pre>'; 
function esEntero($numero) {
  if ($numero < 0) { /* como los núm. son simétricos chequeamos lo convertimos a positvo */
    return (esEntero(-$numero));
  } elseif ($numero >= 1) {
    return (esEntero($numero -1));
  } elseif ($numero == 0) { /* el cero es entero por definición */
    return ("SI");
  } else {
    return ("NO");
  }
} // fin esEntero
 
echo "¿Es  0  un número entero? ".esEntero(0)."\n";
echo "¿Es  3.5 un número entero? ".esEntero(3.5)."\n";
echo "¿Es  -7  un número entero? ".esEntero(-7)."\n";
echo "¿Es -9.2 un número entero? ".esEntero(9.2)."\n";
echo "¿Es  1  un número entero? ".esEntero(1)."\n";
echo "¿Es  100  un número entero? ".esEntero(100)."\n";
 
function factorial( $n ) {
  if ($n == 0 || $n== 1) { // $n == 0 o $n == 1 termina la ejecucion
    return 1;
  } else { 
    return ( $n * factorial ($n-1));
  }
} // fin factorial
 
echo "El factorial de 3 es " . factorial(3) . "\n";
echo "El factorial de 7 es " . factorial(7) . "\n";
echo "El factorial de 2 es " . factorial(2) . "\n";
echo "El factorial de 0 es " . factorial(0) . "\n";
echo '</pre>'; 
?>
programacionphp2/teorias/teoria6.txt · Última modificación: 2017/10/10 16:12 (editor externo)