(PHP 4, PHP 5)
fgets — Prende una riga da un puntatore a file
$handle
, int $length
)
Restituisce una stringa di length
- 1 byte letti dal file puntato da handle
.
La lettura termina quando sono stati letti length
- 1 byte, oppure si incontra il carattere
di newline (che viene incluso nel valore restituito), oppure alla fine del file
(EOF) qualora giunga prima. Se non si specifica length, si assume
come default 1k, o 1024 byte.
Se si verifica un errore, la funzione restituisce FALSE
.
Errori comuni:
Le persone abituate alla semantica 'C' di fgets notino la differenza nel trattamento dell'EOF.
Il puntatore al file deve essere valido, e deve puntare ad un file aperto con successo da fopen() o fsockopen() (e non ancora chiuso da fclose()).
Segue un semplice esempio:
Example #1 Legge un file riga per riga
<?php
$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
$buffer = fgets($fd, 4096);
echo $buffer;
}
fclose($handle);
?>
Nota: Il parametro
length
è diventato opzionale a partire da PHP 4.2.0, se omesso, si assume come lunghezza della linea 1024. A partire dalla versione 4.3, l'omissione del parametrolength
comporta la lettura del flusso d'ingresso sino al raggiungimento della fine della linea. Se la maggior parte delle righe lette dal file hanno dimensione superiore a 8KB, è più efficiente specificare la lunghezza massima della linea.
Nota: A partire da PHP 4.3 questa funzione è 'binary safe'. Le versioni precedenti non lo sono.
Nota: Se si hanno problemi con il PHP che non riconosce i fine linea leggendo file creati o ospitati su un computer Macintosh, si può abilitare l'opzione auto_detect_line_endings della configurazione di runtime.
Vedere anche fread(), fgetc(), stream_get_line(), fopen(), popen(), fsockopen() e stream_set_timeout().