In questa introduzione a PHP ci si rivolge a persone che abbiano già una buona esperienza di redazione di pagine HTML e di linguaggi di programmazione client side, come Javascript, che possono corredarle. La programmazione in PHP vengono quindi esposta a partire da esempi che si suppongono facilmente comprensibili, dai quali dedurre proprietà e regole generali.
Ovviamente è inutile usare la programmazione server side in casi in cui è sufficiente la programmazione client side. Quindi si farà riferimento a situazioni che non possono essere trattate in quest'ultimo modo.
Come primo esempio si propone una semplice pagina web che comunica all'utente il numero di accessi alla pagina stessa.
Il sorgente dell'esempio è il seguente
<!DOCTYPE html> <html lang="it"> <head> <title>contaV <meta charset="utf-8" > <meta name="viewport" content="width=device-width,minimum-scale=1.0,initial-scale=1.0"> </head> <body> <h1> <?php $conta = 0; $nf = "file_conta.txt"; if (file_exists($nf)) { $file = fopen($nf,"r"); $conta = fgets($file); fclose($file); } $conta++; $file = fopen($nf,"w"); fputs($file,$conta); fclose($file); $out = "Questa pagina è stata visitata "; if ($conta == 1) $out .= "una volta."; else $out .= $conta." volte."; echo $out; ?> </h1> </body> </html>
La pagina è sostanzialmente una pagina HTML. L'unica novità rispetto all'HTML è l'uso del tag <?php che contiene uno script in linguaggio PHP. Lo script è chiuso da ?>. L'uso di questo tag è possibile solo se la pagina è salvata con l'estensione *.php. Lo script contenuto nel tag è rivolto al server quindi, a differenza di analoghi script in Javascript, non può essere eseguito dal browser che legge la pagina. Se volete vedere questa pagina nel vostro PC, dovete avere installato Apache e PHP e aver copiato la pagina in una cartella dentro la cartella www e usare come root della URL del documento localhost.
Conviene, per evitare confusioni, creare nella cartella www una cartella denominata, ad esempio, contavisite e salvare il sorgente in questa cartella con nome contaV.php.
La pagina sarà attivata dal browser scrivendo localhost/contavisite/contaV.php. Se nel browser si clicca il bottone di reload si vede che il numero delle visite aumenta.
Lo script PHP inizia con due istruzioni di assegnazione di valore a due variabili identificate da $conta e $nf:
$conta = 0; $nf = "file_conta.txt";
Gli identificatori delle variabili iniziano obbligatoriamente con il segno di dollaro $ seguito da una lettera ed eventualmente da altre lettere o cifre.
Non sono ammesse lettere accentate. L'unico altro carattere ammesso, oltre a lettere e cifre, è il trattino di sottolineatura _ (underscore).
Gli identificatori sono sensibili al formato maiuscolo o minuscolo delle lettere.
Sono, come si dice in inglese, case sensitive. Identificatori formati dalle stesse lettere, ma con qualcuna di esse in formato diverso, sono diversi.
Le variabili in PHP, come quelle in Javascript e a differenza di quelle in Pascal, C, Java, non sono tipizzate.
Quindi ad un identificatore può essere assegnato un valore numerico, come nel caso di $conta, un valore stringa, come nel caso di $nf, o valori di qualunque altro tipo, come si vedrà in seguito.
Tutte le istruzioni terminano obbligatoriamente con il punto e virgola ;.
Segue l'istruzione condizionale
if (file_exists($nf)) { $file = fopen($nf,"r"); $conta = fgets($file); fclose($file); }
Questa istruzione ha la stessa sintassi dell'analoga in Javascript.
Nella condizione e nel blocco si invocano quattro funzioni predefinite in PHP: file_exists(), fopen(), fgets() e fclose(). Notare che anche gli identificatori delle funzioni sono case sensitive. Notare inoltre che gli identificatori delle funzioni non iniziano con il dollaro e che terminano obbligatoriamente con una coppia di parentesi tonde che sono quindi necessarie anche se la funzione non richiede argomenti.
fopen(filename,mode): apre il file indicato dal primo argomento per fare l'operazione indicata dal secondo argomento. Questa operazione è indicata da una delle seguenti stringhe.
La funzione, se non c'è errore, restituisce un oggetto di tipo file.
Nell'esempio il valore di tale oggetto è assegnato alla variabile
$file che figura poi come argomento delle funzioni successive.
L'istruzione successiva
$conta++;
incrementa di un'unità il valore di $conta. Nel caso non sia stato eseguito il blocco, il valore diventa 1; nel caso contrario è il valore letto dal file che viene incrementato di 1. Notare che in quest'ultimo caso, il valore letto come stringa, viene automaticamente aggiornato a valore numerico, cosa impossibile nei linguaggi tipizzati.
Seguono quindi tre istruzioni che aggiornano il valore registrato nel file "file_conta.txt".
$file = fopen($nf,"w"); fputs($file,$conta); fclose($file);
Infine, con l'istruzione
echo $out;
il server spedisce al browser che legge la pagina il messaggio generato e assegnato alla variabile $out. Se nel browser si usa la funzione che visualizza il sorgente della pagina, si vede scritto solo questo valore. Il lavoro di elaborazione fatto dal server è completamente sconosciuto al browser al quale arrivano solo i messaggi spediti tramite l'istruzione echo.