Php e i files di testo


Php e i files di testo
Quando si realizzano script quasi sempre si ha necessita' di salvare i dati che vengono inseriti dagli utenti. Le strade che si possono seguire in questo caso sono due:
- Salvare i dati su file (ad esempio di estensione .txt, .dat, ecc..)
- Salvare i dati su database(ad esempio Access, Mysql, ecc..)
Salvare dati su file è conveniente quando la quantità di dati da salvare non è elevata e quando non si dispone di un database, se invece la quantità di dati è elevata, salvare i dati su database è la soluzione migliore in quanto così i dati sono più facilmente manipolabili.
Qui di seguito andiamo a vedere come il php interagisce con i files di testo, cioè come avviene la lettura e la scrittura dei dati.
SCRITTURA DATI
Per poter scrivere sul file example.txt bisogna innanzi tutto aprirlo.
$write_file = fopen("example.txt","w");

$write_file viene chiamato puntatore di apertura del file. fopen prende come primo argomento il nome del file e come secondo argomento la modalità di apertura del file. La "w" indica che si vuole aprire il file example.txt in modalità scrittura.
Le altre modalità per aprire un file hanno i seguenti simboli:
"r" -> apre il file in sola lettura;
"r+" -> apre il file in lettura ed in scrittura;
"w" -> apre il file in sola scrittura;
"w+" -> apre il file in lettura e scrittura;
"a" -> apre il file in sola scrittura e inserisce il puntatore alla fine del file ("w" lo inserisce all'inizio)
"a+" -> apre il file in lettura e scrittura inserendo il puntatore alla fine del file;
Ora vogliamo andare a scrivere nel file la stringa "Questo è un test".
$message = "Questo è un test";
fwrite($write_file,$message);
fclose($write_file);

L'istruzione fwrite ha il compito di scrivere nel file la stringa $message. Egli prende come primo argomento il puntatore di apertura del file $write_file che avevamo visto in precendenza e come secondo argomento la stringa che vogliamo memorizzare nel file. Una volta memorizzata la stringa nel file possiamo terminare l'interazione con il file con l'istruzione fclose che prende come argomento il puntatore di apertura del file. Nella pagina successiva andremo a vedere come leggere sul file la stringa che abbiamo memorizzato.
LETTURA FILE
Ora andiamo a leggere nel file example.txt la stringa di testo che ci abbiamo memorizzato. Le istruzioni da digitare seguono la stessa logica delle istruzioni pr scrivere su file. Per prima cosa voglio aprire il file:.
$read_file=fopen("example.txt","r");

Il puntatore di apertura del file l'abbiamo chiamato questa volta $read_file. Al puntatore gli è associata l'istruzione fopen che abbiamo già incontrato nella scrittura su file. Ora andiamo a leggere ciò che è contentuto nel file.
$dim_file = filesize("example.txt");
$content = fread($read_file,$dim_file);
fclose($read_file);

L'istruzione fread che legge il contenuto del file vuole come primo argomento il puntatore di apertura del file e come secondo argomento la quantità di dati (in bytes) che si vuol leggere. Supponiamo di voler leggere tutto il contenuto del file, perciò utilizziamo l'istruzione filesize che prende come argomento il file di cui si vuole sapere le dimensioni (in bytes) e assegniamo questo valore alla variabile $dim_file.
Il contenuto letto dall'istruzione fread lo memorizziamo nella variabile $content, quindi chiudiamo l'interazione con il file con l'istruzione fclose già vista in precedenza per la scrittura. Abbiamo finito con le operazioni di scrittura e lettura su file. Se ora volete per esempio stampare su schermo ciò che era contenuto nel file scrivete l'istruzione:
echo $content;

Vi apparirà su schermo la scritta 'Questo è un test' che avevate memorizzato su file. Nella pagina successiva troverete il riepilogo di tutto ciò detto finora.
RIEPILOGO
// Stringa da scrivere su file
$message = "Questo è un test";

// Scrittura del file
$write_file=fopen("example.txt","w");
fwrite($write_file,$message);
fclose($write_file);

// Lettura del file
$read_file = fopen("example.txt","r");
$dim_file = filesize("example.txt");
$content = fread($read_file,$dim_file);
fclose($read_file);

//Stampa su schermo del contenuto del file
echo $content;


Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi in Excel e fogli di Google