Forum und email
fgets

fgets

(PHP 3, PHP 4, PHP 5)

fgets -- Pobiera linię ze wskaźnika pliku

Opis

string fgets ( resource uchwyt [, int długość] )

Zwraca łańcuch o długość - 1 bajtów odczytany z pliku wskazanego przez uchwyt. Czytanie kończy się kiedy przeczytano długość - 1 bajtów lub gdy wystąpi znak nowej linii (jest on dołączany do zwracanego wyniku) lub gdy wystąpi znak końca pliku EOF (którykolwiek przypadek zdarzy się pierwszy). Jeśli nie została określona długość, będzie następowało czytanie ze strumienia dopóki nie zostanie osišgnięty koniec linii.

W przypadku błędu, zwraca FALSE.

Główna pułapka:

Osoby przyzwyczajone do semantyki 'C' powinni zauważyć różnicę w sposobie zwracania EOF przez fgets().

Wskaźnik na plik musi być poprawny i musi wskazywać na plik pomyślnie otwarty przez funkcję fopen() lub fsockopen() (a jednocześnie nie zamknięty jeszcze przez fclose()).

Prosty przykład:

Przykład 1. Czytanie pliku linia po linii

<?php
$uchwyt
= @fopen ("/tmp/inputfile.txt", "r");
if (
$uchwyt) {
while (!
feof($uchwyt)) {
    
$buffer = fgets($uchwyt, 4096);
    echo
$buffer;
    }
fclose ($uchwyt);
}
?>

Notatka: Parametr długość stał się opcjonalny w PHP 4.2.0 jeśli został pominięty, to powinien przyjąć wartość 1024. Jeśli większość lini w pliku jest dłuższa od 8KB, dużo efektywniejsze jest podanie maksymalnej długości linii.

Notatka: Funkcja jest binaarnie bezpieczna od PHP 4.3. Poprzednie wersje nie są binarnie bezpieczne.

Notatka: W przypadku problemów z rozpoznawaniem znaków końca linii przez PHP przy czytaniu plików stworzonych lub znajdujących się na komputerach Macintosh, może pomóc włączenie dyrektywy konfiguracji auto_detect_line_endings.

Patrz także: fgetss(), fread(), fgetc(), stream_get_line(), fopen(), popen(), fsockopen() i socket_set_timeout().