Blog de Gonzalo

COMO LEER UN FICHERO EN PHP

Hay varias maneras de como leer un fichero en php:

  • fgets:El fichero al que se apunta debe ser válido, y debe apuntar a un fichero abierto por fopen() o fsockopen() (y que todavía no esté cerrado por fclose()). Obtiene una línea desde el puntero de un archivo. La lectura termina cuando se llegue a $length, se llegue a una nueva línea o se alcance el final del archivo.
    $fp = fopen ('path/to/file', 'r');
    $datos = fgets($fp);
    fclose($fp);
  • fgetss: Es igual que fgets() pero elimina cualquier null, etiquetas HTML y PHP del texto. Se puede especificar un parámetro opcional.
  • fread: Lectura de un fichero en modo binario. Se puede incluir un parámetro opcional $length para limitar lo que devuelva.
    $fp = fopen ('path/to/file', 'r');
    $datos = fread($fp, 4096);
    fclose($fp);
  • fscanf: Interpreta la entrada de un archivo $handle en función de un formato $format. El formato es el mismo que se emplea en la función sprintf(). Cada llamada a fscanf() lee una línea del archivo.
    $fp = fopen('path/to/file','r');
    while ($info= fscanf($fp, "%s\t%s")){
    .....
    }
    fclose($fp);
  • fpassthru: Lee toda la información restante desde un puntero hasta el final de un archivo y escribe el resultado en el buffer de salida.
  • fgetcsv: Función para tratar con ficheros csv. Devuelve un array.
    
    $file = fopen('path/to/file.csv','r');
    //En este ejemplo se pasa como delimitador la coma "," peor podria ser otro por defecto el separador es la propia coma ","
    while(! feof($file))
      {
      print_r(fgetcsv($$file, 1000, ","));
      }
    fclose($file);
    
  • fgetc: Lee sólo un carácter desde un puntero de un archivo. Devuelve el string con el único carácter.
    
    $fp = fopen('miarchivo.txt', 'r'))
    while (false !== ($caracter = fgetc($fp))) {
        echo "$caracter\n";
    }
  • file_get_contents: Devuelve un archivo entero a una cadena, se puede especificar el comienzo desde $offset hasta $maxlen.
  • readfile: Es una versión más simplificada de _file_getcontents. Lee el archivo y lo escribe en el búfer de salida. La función devuelve el número de bytes leídos del archivo.
    
    echo readfile('/path/to/file');
    
  • file: Transfiere un archivo a un array. Función similar a _file_getcontents() pero devuelve los contenidos en un array, donde cada elemento es una línea del archivo.
    
    $file_content = file('/path/to/file.txt');
    // Numero de lineas
    echo count($file_content ).'
    '; foreach($file_content as $content) { echo $content .'
    '; }
  • parse_ini_file: Analiza el archivo de configuración $filename y devuelve sus configuraciones en un array asociativo. La estructura del fichero es la misma que la del archivo de configuración php.ini. Si _$processsections es true, se obtiene un array multidimensional.
    $array_ini = parse_ini_file('path/to/file.ini',true);
  • SplFileObject: Usando la librería spl de php
    $fp = fopen('path/to/file','r');
    while ($info= fscanf($fp, "%s\t%s")){
    .....
    }
    fclose($fp);