Forum und email

fgets

(PHP 4, PHP 5)

fgets — Prende una riga da un puntatore a file

Descrizione

string fgets ( resource $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($fd4096);
    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 parametro length 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().