Entiendo las diferencias entre fgets() y fgetss() pero no entiendo la diferencia entre fgets() y fread(), por favor alguien puede aclarar este tema? Que es más rápido? Gracias!

InformationsquelleAutor Alix Axel | 2010-05-01

3 Comentarios

  1. 49

    fgets lee una línea — es decir, se detendrá en una nueva línea.

    fread lee datos en bruto — se detendrá después de un determinado (o predeterminado) número de bytes, independientemente de cualquier nueva línea que pueden o no estar presente.


    La velocidad no es una razón para el uso de uno sobre el otro, como esas dos funciones simplemente no hacer la misma cosa :

    • Si quieres leer una línea de un archivo de texto, a continuación, utilizar fgets
    • Si quieres leer algunos datos (no necesariamente una línea) de un archivo, a continuación, utilizar fread.
  2. 1

    fread() para los datos binarios y fread tiene un límite en la cantidad de caracteres que se puede leer

    $source_file = fopen( $filename, "r" ) or die("Couldn't open $filename");
    while (!feof($source_file)) {
        $buffer = fread($source_file, 5);  
       var_dump($buffer); //return string with length 5 chars!
    }

    El número 5 es la longitud de bytes que se han leído .

  3. 0

    La función fgets lee una sola línea de un archivo de texto. Es la lectura de tan largo hasta el final de la línea actual (o el final del archivo) es alcanzado. Por lo tanto, si a usted le gustaría leer una línea de un archivo de texto, usted debe utilizar fgets.
    La función fread no solo lee hasta el final de la línea, pero al final del archivo (por ejemplo, fread($handle)] o como tantos bytes como se especifica como parámetro [p. ej. fread($handle, 1024)]. Por lo tanto, si usted quisiera leer un archivo completo, no importa si es un archivo de texto con todos los que contienen líneas o arbitrarias datos en bruto de un archivo, usted debe utilizar fread.

Dejar respuesta

Please enter your comment!
Please enter your name here