PHP fgets: Odczytywanie pliku

Coś jest niejasne? Wejdź na Forum PHP i uzyskaj pomoc

PHP fgets – czytanie zawartości pliku

Istnieje kilka sposobów na odczytanie zawartości pliku. Zanim skorzystamy z któregokolwiek z nich musimy określić uchwyt do pliku w trybie do oczytu. Listę dostępnych trybów znajdziecie na poprzedniej lekcji.

Fread

Funkcja fread($uchwyt, $długość) czyta z pliku określoną długość znaków. Czytanie zakończy się, jeżeli osiągnięta zostanie $dlugość znaków, koniec pliku lub odczytanych zostanie 8192 bajtów. Poniżej przykład użycia:

<?php

// utworzenie uchwytu do pliku
$plik = fopen('index.html','r');

// przypisanie zawartości do zmiennej
$zawartosc = fread($plik, 8192);

echo $zawartosc;

?>

Fgets

Innym sposobem na czytanie zawartości jest funkcja fgets($uchwyt). Czyta ona jedną linię pliku, dopóki nie napotka znacznika przejścia do kolejnej linii. Żeby odczytać cały plik, wystarczy użyć pętli. W przypadku tej metody nie musimy się martwić, czy cały plik zostanie odczytany, czy przypadkiem nie przekroczyliśmy długości znaków. Funkcja feof() zwraca true, jeśli osiągnęliśmy koniec pliku.

Przykład czytania pliku z użyciem fgets:

<?php

// utworzenie uchwytu do pliku
$plik = fopen('index.html','r');

$zawartosc = '';

// przypisanie zawartości do zmiennej
while(!feof($plik))
{
   $linia = fgets($plik);
   $zawartosc .= $linia;
}

echo $zawartosc;

?>

Fgetc

Fgetc($plik) jest bardzo podobna w użyciu do fgets, z tą jednak różnicą, że czytamy po jednym znaku. Przykład niemal identyczny:

<?php

// utworzenie uchwytu do pliku
$plik = fopen('index.html','r');

$zawartosc = '';

// przypisanie zawartości do zmiennej
while(!feof($plik))
{
   $linia = fgetc($plik);
   $zawartosc .= $linia;
}

echo $zawartosc;

?>

Tym sposobem potrafisz już odczytywać zawartość plików. Teraz przyszła pora na nauczenie się zapisywania plików. Zapraszam na kolejną lekcję!

Spis lekcji w rozdziale piątym

Poprzednia lekcja: Tryby otwarcia pliku Następna lekcja: Zapisywanie zawartości do pliku