PROGRAMMIAMO
PHP - File: Lettura

fread

Da un file aperto in modalità "r" (read), è possibile leggere dei dati. La funzione fread permette di leggere da un file di testo un numero di byte specificato.

Per esempio:

<?php
$var=fopen("esempio.txt","r");
$dest=fread($var,20);
?>

legge 20 byte (cioè 20 caratteri) dal file di nome "esempio.txt" e li salva nella variabile di nome $dest.

Poichè di solito non si conosce a priori quanti byte si vogliono leggere dal file, la fread è raramente usata in questo modo. Più frequentemente si usa la fread per leggere l'intero contenuto di un file di testo e salvarlo dentro un'unica stringa:

<?php
$var=fopen("esempio.txt","r");
$dest=fread($var,filesize("esempio.txt"));
?>

filesize è un'altra funzione PHP che restituisce la dimensione in byte di un file. In pratica con le istruzioni dell'esempio precedente, l'intero contenuto del file di testo "esempio.txt" viene copiato nella variabile $dest.

Nell'esempio seguente il file "testo.txt" viene per prima cosa salvato nella stringa di nome $leggi. Quindi, usando la funzione nl2br, nella stringa $leggi tutte le andate a capo vengono sostituite col tag <br>. Infine la stringa $sss, con le sostituzioni effettuate, viene visualizzata dalla istruzione echo.

<?php
$var=fopen("testo.txt","r");
$leggi=fread($var,filesize("testo.txt"));
fclose($var);
$sss=nl2br($leggi);
echo $sss;
?>

 

fgets e feof

Vi sono casi nei quali non si desidera leggere l'intero contenuto di un file di testo con un'unica istruzione. In questi casi è più utile la funzione fgets che permette di leggere una riga alla volta dal file (ogni esecuzione di fgets preleva una riga dal file di testo, fino alla successiva andata a capo).

Poichè il numero di righe contenute in un file di testo aperto in lettura non è generalmente noto a priori, di solito la fgets viene usata in un ciclo terminato con la funzione feof (found end of file = trovata la fine del file). L'esempio seguente dovrebbe chiarire:

<?php
$var=fopen("testo.txt","r");

while (!feof($var))
{
$riga = fgets($var);
echo $riga."<br>";
}

fclose($var);
?>

Il ciclo prosegue fintantochè viene trovata la fine del file (l'operatore ! indica la negazione logica NOT). Ad ogni ripetizione del ciclo viene letta una singola riga dal file ($riga = fgets($var)) e quindi la riga letta viene visualizzata con l'aggiunta di un <br> (echo $riga."<br>").

 

precedente - successiva

Sito realizzato in base al template offerto da
Graphixmania.it - Grafica e non solo
http://www.graphixmania.it