(PHP 4, PHP 5)
fread — Odczyt pliku binarnie bezpieczy
$uchwyt
, int $długość
)
fread() odczytuje do
długość
bajtów ze wskaźnika pliku
określonego przez uchwyt
. Czytanie kończy się
gdy odczytano długość
bajtów, osiągnięty
został koniec pliku (EOF), (dla sieciowych strumieni), kiedy pakiet
stanie się dostępny lub (po otwarciu strumienia z przestrzeni użytkownika)
kiedy 8192 bajtów zostanie odczytanych, cokolwiek nastąpi pierwsze.
Zwraca łańcuch znaków lub FALSE
w przypadku błędu.
<?php
// pobierz zawartość pliku do łańcucha
$nazwa_pliku = "/usr/local/jakis.txt";
$uchwyt = fopen($nazwa_pliku, "r");
$tresc = fread($uchwyt, filesize($nazwa_pliku));
fclose($uchwyt);
?>
W systemach, które rozróżniają pliki binarne i tekstowe (np. Windows) plik musi zostać otworzony z 'b' dołączonym do parametru tryb fopen().
<?php
$nazwa_pliku = "c:\\pliki\\jakisobrazek.gif";
$uchwyt = fopen($nazwa_pliku, "rb");
$tresc = fread($uchwyt, filesize($nazwa_pliku));
fclose($uchwyt);
?>
Kiedy następuje odczyt z czegokolwiek innego niż zwykłe lokalne pliki, takich jak strumienie zwrócone gdy odczytujesz zdalne pliki lub z popen() i fsockopen(), odczyt zakończy się po tym jak pakiet jest dostępny. To znaczy, że powinieneś gromadzić dane razem z kawałków jak pokazano na poniższych przykładach.
<?php
// dla PHP 5 i nowszych
$uchwyt = fopen("http://www.example.com/", "rb");
$tresc = stream_get_contents($uchwyt);
fclose($uchwyt);
?>
<?php
$uchwyt = fopen("http://www.przykladowy.com/", "rb");
$tresc = '';
while (!feof($uchwyt)) {
$tresc .= fread($uchwyt, 8192);
}
fclose($uchwyt);
?>
Informacja:
Jeśli po prostu chcesz otrzymać treść pliku w stringu, użyj file_get_contents() dlatego, że ma to dużo lepszą wydajność niż kod powyżej.
Patrz także: fwrite(), fopen(), fsockopen(), popen(), fgets(), fgetss(), fscanf(), file() i fpassthru().