Forum und email

fgets

(PHP 4, PHP 5)

fgets — Načíta riadok zo súboru zadaného deskriptorom

Popis

string fgets ( resource $deskriptor [, int $dlzka ] )

Načíta zo súboru zadaného parametrom deskriptor reťazec dĺžky dlzka - 1. Načítavanie skončí, ak už bolo prečítaných dlzka - 1 bytov alebo bol načítaný znak konca riadku (tento znak bude obsiahnutý aj v návratovej hodnote) alebo na znaku konca súboru (EOF), podľa toho, ktorá z uvedených možností nastane ako prvá. Ak dĺžka nie je špecifikovaná, bude použitá implicitná hodnota 1k, resp. 1024 bytov.

Ak nastane chyba, bude vrátené FALSE.

Časté chyby a nástrahy:

Užívatelia zvyknutý používať sémantiku funkcie fgets() v štýle jazyka C by si mali všimnúť rozdiel v tom, ako je vrátený EOF.

Deskriptor súboru musí byť platný a musí odkazovať na súbor, ktorý bol úspešne otvorený pomocou fopen(), popen() alebo fsockopen().

Nasleduje jednoduchý príklad:

Example#1 Načítavanie súboru po riadkoch

$handle = fopen ("/tmp/subor.txt", "r");
while (!feof ($handle)) {
    $buffer = fgets($handle, 4096);
    echo $buffer;
}
fclose ($handle);

Note: Parameter length je voliteľným od verzie PHP 4.2.0, ak je vynechaný, predpokladá sa ako dĺžka riadku hodnota 1024. Od PHP 4.3, vynechanie parametra dĺžka zaistí načítavanie z prúdu dovtedy, kým sa nenarazí na koniec súboru. Ak väčšina riadkov v súbore je dlhšia ako 8KB, je efektívnejšie definovať v skripte dĺžku riadku.

Note: Táto funkcia pracuje správne s binárnymi súbormi od verzie PHP 4.3. Staršie verzie nemusia s binárnymi súbormi pracovať správne.

Note: Ak máte problémy s tým, že PHP nerozpoznáva konce riadkov pri čítaní súborov na počítači Macintosh alebo na ňom vytvorených, možno budete chcieť povoliť run-time konfiguračnú voľbu auto_detect_line_endings.

Pozri tiež fread(), fopen(), popen(), fgetc(), fsockopen() a socket_set_timeout().