Scrittura di un file

In PHP possiamo salvare un file sul server e leggere il contenuto.

Supponiamo di voler creare una rubrica telefonica, contenente il nome, il cognome, il numero di telefonino.

Esempio

Antonio Rossi 3338585969

Luigi Bianchi 3492356896

Federico Verdi 3665285968

La procedura consiste nei seguenti punti:

1) Si assegna dapprima il nome a piacere al file:

$nomefile ="rubrica.txt";

2) Si assegna ad una variabile a piacere $fp il richiamo della funzione fopen che serve per gestire i file:

$fp = fopen($nomefile,"w");

E' obbligatorio:

a) fopen in inglese, che vuol dire: apri un file;

b) parentesi tonde aperte e chiuse;

c) due variabili all'interno delle parentesi tonde, separandole con una virgola; la prima variabile contiene il nome a piacere del file; la seconda variabile può avere solo i seguenti valori:

w cioè apre un nuovo file per scrivere qualcosa; essa cancella un file esistente con lo stesso nome;

r cioè legge un file esistente;

r+ cioè legge e scrive su di un file esistente.

a cioè aggiunge all'ultima linea di un file esistente.

$fp = fopen($nomefile,"w");

Significa: apri un file nuovo di nome $nomefile, cioè rubrica.txt, per scrivere sopra qualcosa e assegna la gestione del file alla variabile $fp.

3) se il file è stato aperto in scrittura, cioè con w, posso solo scrivere con l'istruzione fputs.

fputs ($fp,"Antonio Rossi 3338585969");

fputs serve per scrivere su di un file, nel punto in cui ci troviamo; è obbligatorio;

a) fputs in inglese;

b) le parentesi tonde aperte e chiuse;

c) due variabili all'interno delle parentesi tonde, separate da una virgola; la prima variabile $fp deve essere la stessa con la quale è stato aperto il file; la seconda variabile contiene il contenuto da scrivere nel file, cioè nome, cognome e numero di telefonino. E' inoltre obbligatorio mettere un salto di linea con ritorno a capo, per evitare confusione con i dati memorizzati nel file; per cui si assegna ad una variabile a piacere il carattere avente numero ASCII 10.

$linea=chr(10);

il carattere avente numero ASCII 10 significa: salta un rigo e vai a capo. Per cui conviene scrivere in questo modo:

fputs ($fp,"Antonio Rossi 3338585969 $linea");

Dovendo scrivere tre nomi nella rubrica aggiungiamo:

fputs ($fp,"Luigi Bianchi 3492356896 $linea");

fputs ($fp,"Federico Verdi 3665285968 $linea");

 

4) terminata la scrittura di tutti i dati è obbligatorio chiudere il file con l'istruzione fclose;

fclose($fp);

fclose chiude un file aperto in precedenza ed assegnato alla variabile $fp. Se non chiudiamo il file è possibile che vengano persi tutti i dati. Se, invece, chiudiamo il file con fclose, il file viene salvato sul server e posso leggerlo quando mi serve.

 

Scrittura di rubrica.txt

 

Tecnologie informatiche 2010