2011-08-25 10 views
13

¿Cuál es la diferencia entre¿Cuál es la diferencia entre file_get_contents y fread

$contents = file_get_contents("folder/somefile.txt") 

y

$handle = fopen("folder/somefile.txt", "r"); 
$contents = fread($handle, filesize($filename)); 
fclose($handle); 

en términos de rendimiento, manejo de puntero de archivo y la memoria gestión?

¿Y es cierto que file_get_contents usa mmap si OS lo permite?

Respuesta

4

fread() lee datos binarios, file_get_contents() devuelve los datos como una cadena.

+0

estoy comparando las dos snipets de código, y me gustaría que también condider 'rendimiento, la manipulación y el puntero de archivo managing' memoria –

+6

incorrecto - con' fread() 'debe abrir el archivo con el indicador' B' a asegúrese de que sea binario-seguro, mientras que 'file_get_contents()' siempre es binario-seguro – Crack

+0

Me gusta su comentario @Crack. Por cierto buena respuesta por Organizado – NullPointer

5

fread tiene un límite en la cantidad de caracteres que puede leer, y es mejor para analizar datos.

file_get_contents no tiene límite en la entrada (que yo sepa). Esto se usa para acceso API externo y tal.

+0

corrija que estaba teniendo problemas con 'fread'. Estaba truncando caracteres de serialización de datos mientras leía archivos. – NullPointer

Cuestiones relacionadas