back to top

Lavorare con i file di testo in PHP: fopen, fwrite, fread e fclose

Grazie a PHP, come abbiamo visto, è piuttosto facile interagire col filesystem, in questa lezione della nostra guida vedremo le funzioni base per lavorare con i file, più precisamente vedremo come aprire un file di testo e come leggerne e modificarne il contenuto

fopen

La funzione di base per "aprire" un file è fopen(). Questa funzione restituisce "true" in caso di esito positivo o "false" in caso di esito negativo. Ecco come usare "fopen()".

$fp = fopen("data.txt", "r");
if(!$fp) die ("Errore nella operaione con il file");

Come vedete all’interno della funzione, oltre al percorso del file da aprire, abbiamo passato un secondo attributo "r" (che prende il nome di "mode" o modalità). Col secondo attributo abbiamo impostato la modalità di sola lettura ma avremmo potuto impostare anche aktri valori, vediamoli di seguito:

  • r – Apertura del file per sola lettura;
  • r+ – Apertura del file per lettura e scrittura;
  • w – Apertura del file per sola scrittura; I contenuti del file esistente andranno persi, qualora il file non esiste PHP cercherà di crearlo;
  • w+ – Apertura del file per lettura e scrittura. I contenuti del file esistente andranno persi, qualora il file non esiste PHP cercherà di crearlo;
  • a – Apertura del file per sola aggiunta. I nuovi dati verranno aggiunti in coda ai dati già presenti, qualora il file non esiste PHP cercherà di crearlo;
  • a+ – Apertura del file per lettura e aggiunta. I nuovi dati verranno aggiunti in coda ai dati già presenti, qualora il file non esiste PHP cercherà di crearlo;

Dopo aver aperto il file possiamo finalmente lavorarci sopra. Le funzioni utili a questo punto saranno "fread()" e "fwrite()" che utilizzeremo, rispettivamente, per leggere e per scrivere il contenuto del file.

fread

Questa funzione viene utilizzata per estrarre una stringa di caratteri da un file. Quindi (dopo aver aperto il file con fopen() nel modo visto sopra) aggungeremo qualcosa del genere:

$data = fread($fp, 10);
echo $data;

All’interno della nostra funzione abbiamo passato due argomenti: il primo è il puntatore del file, il secondo è un valore numerico che sta ad indicare il numero massimo di byte da leggere (nell’esempio abbiamo messo 10). Arrivato a quel numero PHP smetterà di leggere. Con "echo" abbiamo poi chiesto al nostro script di stampare a video il contenuto ricavato dal file.

fwrite

Ovviamente, prima di usare questa funzione dovremo aprire il file in modo adeguato, quindi non utilizzeremo "r" ma, ad esempio, "w" in modo da consentire la scrittura. Dopodichè andremo ad usare fwrite() in questo modo:

fwrite($fp, "ciao a tutti");

Il primo attributo della funzione, come per fread(), è il puntatore del file, il secondo, invece, è la stringa che andremo a scrivere all’interno del nostro file (la posizione in cui verrà inserita la stringa di testo all’interno del file dipende dal valore precisato per "mode" al momento dell’aperura del file)

fclose

Una volta concluso il nostro lavoro sul file è buona norma chiedere a PHP di chiudere lo stesso cancellando il puntatore. In questo modo:

fclose($fp)

Questa funzione richiede un solo attributo, cioè il nome del puntatore relativo al file che desideriamo chiudere.

Pubblicità
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).