PHP -> Funkcie -> Súborové funkcie PHP -> funkcia fgets
Syntax
string fgets ( resource deskriptor [, int dlzka] )
Popis
Príkaz jazyka PHP
fgets -- Načíta riadok zo súboru zadaného deskriptorom
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.
Poznámky
- Parameter dlzka 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.
- 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.
- 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 by ste mali povoliť run-time konfiguračnú voľbu auto_detect_line_endings.
Príklad
$handle = fopen
("/tmp/subor.txt",
"r");
while (!
feof ($handle)) {
$buffer =
fgets($handle, 4096
);
echo $buffer;
}
fclose ($handle);
Pozri aj
fread, fopen, popen, fgetc, fsockopen a socket_set_timeout.