Forum und email
fread

fread

(PHP 3, PHP 4, PHP 5)

fread -- Odczyt pliku binarnie bezpieczy

Opis

string fread ( resource 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);
?>

Ostrzeżenie

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);
?>

Ostrzeżenie

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("https://www.example.com/", "rb");
$tresc = stream_get_contents($uchwyt);
fclose($uchwyt);
?>

<?php
$uchwyt
= fopen("https://www.przykladowy.com/", "rb");
$tresc = '';
while (!
feof($uchwyt)) {
  
$tresc .= fread($uchwyt, 8192);
}
fclose($uchwyt);
?>

Notatka: 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().