Lezione sul PHP e file testo (.txt)


PHP e archivio di testo (file.txt) si legge Fail.txt

PHP è un linguaggio di programmazione autonomo derivante dal C, ed è nato per soddisfare alcune esigenze che avevano i programmatori internet.
Questo vuol dire che il binomio PHP-MySql (o qualunque altro database) è nato dopo il linguaggio di programmazione.

PHP permette oltre l'utilizzo dei database, anche il lavoro con i file (si legge fail in inglese) di testo (.txt). Mediante PHP possiamo leggerli, modificarli, crearli e salvarli. In pratica possiamo avere un'alternativa ai database (anche se con molti limiti e molto più complicata).

Prima di analizzare le funzioni relative vi informiamo che un eventuale errore con i file (si legge fail in inglese) di testo genera un risultato booleano false con un errore mostrato a video.
Per ovviare a questo problema possiamo inserire il simbolo @ che non fa altro che nascondere l'errore generato. Per verificare l'errore possiamo associare un ciclo if al valore booleano.

Vediamo le funzioni base che consentono di lavorare con i file ((si legge fail in inglese) di testo:





fopen();


La funzione fopen(); apre un file. Come per le connessioni con i database, solitamente si associa una variabile a questa connessione, la quale identifica il file in maniera univoca.
Esempio:<?
$var=fopen("nome_file.txt","tipo");
?>
Tipo:
Al posto di 'tipo' dobbiamo inserire una costante che identifica il tipo di apertura file.


R  Per sola lettura.

R+ Per lettura e scrittura (scrive all'inizio del file).


W Per sola scrittura (I dati già scritti andranno persi e se il file non esiste sarà creato).

W+  Per scrittura e lettura (I dati già scritti andranno persi e se il file non esiste sarà creato. Scrive all'inizio del file).


A Per aggiungere (I dati saranno aggiunti in coda a quelli già scritti, se il file non esiste sarà creato.)

A+  Per aggiungere e lettura (I dati saranno aggiunti in coda a quelli già scritti, se il file non esiste sarà creato.)



fread();


La funzione fread(); estrae un numero di byte dal file di testo (.txt).
Esempio:<?
$var=fopen("nome_file.txt","r");
$var2=fread($var,20);
?>
In questo caso abbiamo aperto un file di testo (nome_file.txt) solo per leggerlo (r) ed abbiamo estratto 20 byte.

Per leggere tutto il file dobbiamo scrivere in questo modo:<?$var=fopen("nome_file.txt","r");
$var2=fread($var,filesize("nome_file.txt"));
?>
Dove la funzione filesize() restituisce la grandezza totale del file.
Nel caso dentro il file ci siano dei rientri a capo che vogliamo visualizzare a video dobbiamo inserire un'altra funzione:
nl2br() che in pratica aggiunge un <br> quando trova un ritorno a capo nel file di testo.
Esempio: <?
$var=fopen("nome_file.txt","r");
$leggi=fread($var,filesize("nome_file.txt"));
$sss=nl2br($leggi);
fclose($var);
echo $sss;
?>

fwrite();


La funzione fwrite(); scrive una stringa nel file di testo che abbiamo aperto.
Esempio:<?
$var=fopen("nome_file.txt","a+");
fwrite($var, "stringa di prova");
?>
In questo caso abbiamo aperto un file di testo (nome_file.txt) per aggiungere e lettura (a+) ed abbiamo scritto "stringa di prova" alla fine dei dati già scritti. Se il file non esisteva abbiamo creato un nuovo file di testo con sopra scritto "stringa di prova".


fclose();


La funzione fclose(); chiude la connessione aperta verso il file di testo.
Esempio:<?
$var=fopen("nome_file.txt","a+");
....
....
fclose($var);
?>
Importante:
Ricordate che un sito con script PHP depositato su un hosting non è detto che sia compatibile con altri hosting. In teoria si, (se la versione di PHP è la stessa), ma in pratica si potrebbero riscontrare alcune differenze nelle impostazioni di sicurezza che il gestore dello spazio web impone.
Per essere sicuri di non incorrere in futuri errori è consigliabile chiudere SEMPRE un file aperto, anche se il sito funziona ugualmente se non chiuso. Potrete risparmiare tempo se in futuro cambiate il gestore di spazio web!!
feof();


La funzione feof(); verifica se abbiamo raggiunto la fine del file di testo che abbiamo letto.
Restituisce true se è andata a buon fine e false se viceversa abbiamo errato qualche passaggio.


file_exists();


Controlla se un file esiste. Risponde true se esiste e false se non esiste.Esempio:
<? $var= file_exists("nome_file.txt");
if ($var==true) echo"true<br>";
if ($var==false) echo"false<br>";
?>

filesize();


Restituisce la grandezza totale del file che indichiamo all'interno delle parentesi.
Si può usare per scrivere un intero file, vedi l'esempio della funzione fread();





Include();


Utilizzato anche per altri scopi può servire per scrivere a video un file di testo. In pratica include nella pagina web il testo contenuto nel file di testo. Che sia testo, comandi, uno script, qualunque sia il contenuto verrà inserito nella pagina web in quel preciso punto dove è inserito il comando 'include'.

Esempio:<? include("nome_file.txt"); ?>
Inserisce il testo senza tenere conto dei ritorni a capo, sempre che nel testo non ci siano dei tag <br> di HTML.


file();


La funzione file("nome_file.txt") restituisce un array con gli elementi uguali ad ogni riga del file di testo.
Possiamo capire quento sia importante questa funzione. Unita alle altre funzioni array è possibile manipolare un file di testo quasi come un database.


count();


Questa non è una funzione direttamente collegabile ai file di testo, ma il suo inserimento in questa pagina è giustificato dal suo largo utilizzo con l'istruzione file();
L'istruzione count(); conta gli elementi contenuti in un array.


Conclusioni:


I file di testo possono essere usati per molteplici usi. Dobbiamo solo immaginare il file di testo come un grosso array, ed operare di conseguenza.

- Immaginiamo di memorizzare i dati in un file di testo.
- In ogni riga un dato relativo ad un utente.
- A questo punto contiamo le righe (file(); e cont();).
- Adesso con un ciclo for facciamo una scansione del contenuto array e troviamo quello cercato.






fonte: Internet

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)