2011-08-25 10 views
13

Jaka jest różnica międzyJaka jest różnica między file_get_contents i fread

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

i

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

pod względem wydajności, wskaźnik obsługi plików i pamięci zarządzającej?

Czy to prawda, że ​​file_get_contents używa mmap, jeśli pozwala na to OS?

Odpowiedz

4

odczytuje dane binarne, file_get_contents() zwraca dane w postaci ciągu.

+0

Mam porównanie dwóch snipets kodu, a ja lubię do condider również 'wydajność, obsługa wskaźnik pliku i pamięci managing' –

+6

Zła - z' fread() 'należy otworzyć plik z flagą do' B' upewnij się, że jest bezpieczny dla binarnych, podczas gdy 'file_get_contents()' jest zawsze binarnie bezpieczny – Crack

+0

Podoba mi się twój komentarz @Crack. Przy okazji miła odpowiedź organizowana – NullPointer

5

Fread ma limit na liczbę znaków, które można odczytać, i jest lepszy do analizowania danych.

file_get_contents nie ma ograniczenia na wejściu (które znam). Jest używany do zewnętrznego dostępu do interfejsu API i tym podobnych.

+0

Popraw, że mam problem z 'fread'. Obcinano znaki serializacji danych podczas odczytu z pliku. – NullPointer

Powiązane problemy