Corso di PHP
Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione, come il pascal o il linguaggio C. Un linguaggio di programmazione produce delle pagine dinamiche o interattive il cui contenuto può variare a seconda delle scelte dell'utente.
Dove si scrive e come si scrive il codice Il codice PHP può essere inserito dentro il codice HTML tra i tag: Il codice di un linguaggio di programmazione all'interno di una pagina web viene detto script. Un programma PHP si edita come una qualunque pagina HTML con un editor testuale, ma deve essere salvato con estensione .php
PHP è un linguaggio di programmazione lato server. Questo significa che il codice PHP deve essere interpretato ed eseguito da un apposito modulo PHP che risiede nel server. Se si scrive un programma PHP, se ne può vedere l'esecuzione solo in rete e non sul computer locale, a meno che non abbia si abbia installato su di esso sia il modulo PHP, sia il programma APACHE che trasforma in un server il PC. Funziona così: Si scrive il programma con un editor testuale. Si salva il file con estensione .php; Si carica (upload) il file sul server; Si chiama il programma .php digitando l'indirizzo (URL) sul browser; Il server preleva la pagina chiamata e la manda al modulo PHP; Il modulo PHP esegue le istruzioni contenute nel programma e genera una pagina web al volo; Il server rimanda la pagina web al browser che la interpreta e visualizza. Se cerchi di visualizzare dal tuo browser il codice sorgente di una pagina .php, vedrai solo il codice HTML generato dal modulo PHP.
Primo esempio Come abbiamo detto, il codice PHP può essere inserito dentro il codice HTML, ma si può anche inserire codice HTML dentro il codice PHP. Questo avviene con l'istruzione echo. Apri il tuo editor e scrivi (all'interno di un file HTML) la tua prima riga di codice PHP. Qui di seguito puoi vedere due esempi: Osserva la sintassi dell'istruzione echo: All'interno dell'istruzione echo c'è una stringa di HTML (valgono i tag HTML) La stringa di HTML è messa tra virgolette " (ma si possono usare anche gli apici ') L'istruzione termina con punto e virgola ; (come in altri linguaggi di programmazione) <body> <?php echo"ciao"; ?> </body> <body> <?php echo"<b>ciao</b>, <br /> come ti chiami?"; ?> </body>
Salvare il file php Salva il file come prova.php, ma non tentare di eseguire il programma in locale cliccandoci su! Se clicchi su un file .php, il sistema operativo chiederà quale programma si vuole aprire. Spesso apre il blocco note in cui è visibile solo il codice. Per vedere l'esecuzione del programma, lo devi pubblicare sul server! Chiamando il programma dal browser, il modulo PHP costruirà al volo una pagina HTML che sarà visualizzata dal tuo browser. Qual è il vantaggio? Per il momento nessuno, per avere un minimo di interattività dobbiamo introdurre le variabili.
Pubblicare sul server Per pubblicare sul server (cioè nel sito remoto) devi prima aver salvato il file prova.php nel sito locale, cioè in una cartella del tuo computer. Se hai installato EasyPHP è possibile una volta avviato il server Apache emulare un server web in locale.
Sito locale Cliccando con il tasto destro sull’icona di EasyPHP della barra degli strumenti del desktop di windows si apre una finestra di dialogo con diverse opzioni. Cliccando su Sito Locale si apre la finestra del browser predefinito con la pagina principale del sito associata all’indirizzo IP di default http://127.0.0.1/ a cui è associato anche l’indirizzo mnemonico localhost.
Gestione file con EasyPHP Con EasyPHP la gestione dei file e la pubblicazione dei file in un server Locale avviene con la modalità classica con cui si gestiscono i file in windows. La cartella www e la cartella principale dove vengono salvati i file del sito e dove è presente un file index.php. Qui è possibile creare nuove cartelle e salvare i file del sito nei diversi formati. Una volta salvati (pubblicati) i file php è possibile eseguirli direttamente dal browser.
Le variabili Una variabile PHP non deve generalmente essere dichiarata, come in altri linguaggi di programmazione Il nome di una variabile deve essere preceduto dal carattere $, può contenere lettere, cifre e il carattere "_" (underscore), ma non può iniziare con una cifra. Esempi: $a $pippo $a12 $contatore $mario_rossi Tipi di variabili Il tipo di variabile dipende dal loro contenuto. Le variabili semplici possono essere: di tipo numerico se contengono valori numerici di tipo stringa se contengono stringhe di caratteri di tipo boolean se contengono solo i valori TRUE/FALSE
Gli Operatori Per operare sulle variabili si usano operatori aritmetici, relazionali o logici.
Input di dati Tutto quello che abbiamo visto non è molto utile se non troviamo il modo di far immettere i dati all'utente. Si tratta in realtà di 2 file: il primo è un file HTML in cui è contenuto un modulo o form di immissione dati, il secondo è il file PHP che elabora i dati di ingresso.
Input di dati 2 Calcola.htm Calcola.php <body> <?php $a=$_POST[‘a’]; $b=$_POST[‘b’]; $somma=$a + $b; $differenza= $a - $b; $prodotto = $a *$b; $rapporto = $a/$b; $resto = $a%$b; echo" <p>Hai immesso i numeri $a e $b</p> <p>La somma dei due numeri è $somma</p> <p>La differenza è $differenza</p> <p>Il prodotto è $prodotto</p> <p>Il rapporto è $rapporto</p> <p>Il resto della divisione è $resto</p> "; ?> <p><a href="calcola.htm">Torna indietro</a></p> </body> <body bgcolor="#ccff00"> <form action ="calcola.php" method="post"> Inserisci due numeri: <input type=text name="a"> <input type=text name="b"> <input type="submit"> </form> </body> Il tag form deve avere due attributi importanti (action e method) che permettono il collegamento al programma calcola.php che elaborerà i dati. E' assolutamente necessario che i due input abbiano l'attributo name perchè il programma PHP deve creare delle variabili con il nome assegnato (in questo caso $a e $b) e con il valore immesso dall'utente prelevato attraverso l’array superglobali $_ POST.
Le variabili superglobali $_GET, $_POST PHP è un linguaggio dove in generale non sono supportate le cosiddette variabili globali, cioè variabili utilizzabili in qualsiasi ambito e punto del codice. Ad ogni modo però in PHP, e nello specifico dal 4.1.x in poi sono state introdotte variabili interne di sistema che hanno comportamenti analoghi e sono cosiddette globali, anzi, superglobali. In particolare si tratta di array chiamati superglobali e predefiniti in PHP per l'utilizzo da parte dello sviluppatore. Vediamo di seguito questi array superglobali: $_GET[ ] E' un array che include tutte le variabili ricevute da PHP tramite browser con il metodo GET di HTTP. $_POST[ ] E' un array che include tutte le variabili ricevute da PHP tramite browser con il metodo POST di HTTP.
La selezione IF <? //specifico il valore della variabile $tempo $tempo = "sole"; //Costruisco la condizione if ($tempo == "piove"){ print "resto a casa"; }else{ print "vado al parco"; } ?>
La selezione if … else <? //specifico il valore della variabile $tempo $tempo = "sole"; //...e quello della variabile $temperatura $temperatura = "freddo"; //Costruisco la condizione if ($tempo == "piove"){ if ($temperatura == "freddo"){ print "resto a casa"; }else{ print "vado al bar"; } }else{ print "vado al parco"; } ?>
La selezione multipla switch <? //specifico il valore della variabile $tempo $tempo = "sole"; switch ($tempo) { //se piove... case ‘piove‘: print "resto a casa" break; //se c‘è il sole... case ‘sole‘: print "vado al parco" break; //negli altri casi... default: print "vado al bar" } ?>
Le itarazioni/cicli Iterazione while In PHP esistono tre tipi di cicli: l'istruzione while l'istruzione do .. while l'istruzione for while (condizione) { istruzione; istruzione; ... ; }; Iterazione do .. while Iterazione for do { istruzione; istruzione; ... ; } while (condizione); for ($i=0; $i<$n; $i++) { istruzione; istruzione; ... ; };
Gli array Gli array non sono altro che contenitori dove poter stipare dati, con un contatore univoco per ogni dato inserito. Definizione di array: $saluto = array('buongiorno','buonasera','buonanotte'); Oppure: $saluto[0] = 'buongiorno'; $saluto[1] = 'buonasera'; $saluto[2] = 'buonanotte'; Se scriviamo: print $saluto[0]."<br>\n"; print $saluto[1]."<br>\n"; print $saluto[2]."<br>\n"; Otterremo come risultato: buongiorno buonasera buonanotte
Contare in array: Per contare gli elementi contenuti in un array dobbiamo utilizzare la funzione count() Esempio: Supponiamo di avere un array così composto: $saluto = array('buongiorno','buonasera','buonanotte'); Se scriviamo $nomeacaso = count($saluto); La variabile $nomeacaso da adesso contiene il numero degli elementi dell'array, ossia 3.
Ciclo FOR ed array: Procedura ciclo FOR: Dopo aver ricavato il numero degli elementi con la funzione count() dobbiamo scrivere il ciclo for fermandoci appena trovato l'ultimo elemento. La chiave di lettura sarà la stessa variabile di controllo del ciclo FOR. Esempio: $saluto = array('buongiorno','buonasera','buonanotte'); $conta = count($saluto); for($i=0;$i<$conta;$i++){ echo"<span style="color:green;">"$saluto[$i]."</span><br>"; } Otterremo come risultato: buongiorno buonasera buonanotte
Ciclo foreach() Il ciclo foreach si utilizza esclusivamente per gli array. In pratica il ciclo guarda dentro un array e per ogni elemento ne estrae la chiave ed il valore. Sintassi ciclo foreach: foreach($array as $chiave => $valore){ ..operazioni.. } Per ogni ciclo avremo $chiave contenente la chiave dell'elemento esaminato, e $valore contenente il valore dell'elemento esaminato. Esempio: <?php $saluto2['mattina'] = 'buongiorno'; $saluto2['sera'] = 'buonasera'; $saluto2['notte'] = 'buonanotte'; foreach ( $saluto2 as $chiave => $valore) { echo $chiave."--".$valore."<br/>"; } ?> Dal ciclo dell'esempio otterremo come risultato: mattina--buongiorno sera--buonasera notte--buonanotte
Ordinare gli array Per ordinare gli array il linguaggio Php ci mette a disposizione delle funzioni: sort() (Ordine crescente e rinomina le chiavi) rsort() (Ordine DEcrescente e rinomina le chiavi) asort() (Ordine crescente con chiavi originali) arsort() (Ordine DEcrecente con chiavi originali) array_reverse() (Inverte l'ordine)
sort() sort() La funzione sort() ordina un array in ordine crescente, e rinomina le sue chiavi partendo da zero. Esempio: <? $provarray=array(5,'a',7,1,'r','c'); sort($provarray); foreach($provarray as $chiave => $valore){ echo "provarray[".$chiave."]=".$valore."<br />"; } ?> Otteniamo come risultato: provarray[0]=a provarray[1]=c provarray[2]=r provarray[3]=1 provarray[4]=5 provarray[5]=7
rsort() rsort() La funzione rsort() ordina un array in ordine DEcrescente, e rinomina le sue chiavi partendo da zero. Esempio: <? $provarray=array(5,'a',7,1,'r','c'); rsort($provarray); foreach($provarray as $chiave => $valore){ echo "provarray[".$chiave."]=".$valore."<br />"; } ?> Otteniamo come risultato: provarray[0]=7 provarray[1]=5 provarray[2]=1 provarray[3]=r provarray[4]=c provarray[5]=a
asort() asort() La funzione asort() ordina un array in ordine crescente e mantiene le sue chiavi originali. Esempio: <? $provarray=array(5,'a',7,1,'r','c'); asort($provarray); foreach($provarray as $chiave => $valore){ echo "provarray[".$chiave."]=".$valore."<br />"; } ?> Otteniamo come risultato: provarray[1]=a provarray[5]=c provarray[4]=r provarray[3]=1 provarray[0]=5 provarray[2]=7
arsort() arsort() La funzione arsort() ordina un array in ordine DEcrescente e mantiene le sue chiavi originali. Esempio: <? $provarray=array(5,'a',7,1,'r','c'); arsort($provarray); foreach($provarray as $chiave => $valore){ echo "provarray[".$chiave."]=".$valore."<br />"; } ?> Otteniamo come risultato: provarray[2]=7 provarray[0]=5 provarray[3]=1 provarray[4]=r provarray[5]=c provarray[1]=a
array_reverse() array_reverse() La funzione array_reverse() inverte l'ordine e rinomina le chiavi. Se vogliamo mantenere le chiavi originali dobbiamo scrivere: array_reverse($array,true); Esempio: <? $provarray=array(5,'a',7,1,'r','c'); $provarray2=array_reverse($provarray); echo"array_reverse con chiavi rinominate:<br />"; foreach($provarray2 as $chiave => $valore){ echo "provarray2[".$chiave."]=".$valore."<br />"; } echo "<br />"; $provarray3=array_reverse($provarray,true); echo"array_reverse con chiavi originali:<br />"; foreach($provarray3 as $chiave => $valore){ echo "provarray3[".$chiave."]=".$valore."<br />"; } ?> Otteniamo come risultato: array_reverse con chiavi rinominate: provarray2[0]=c provarray2[1]=r provarray2[2]=1 provarray2[3]=7 provarray2[4]=a provarray2[5]=5 array_reverse con chiavi originali: provarray3[5]=c provarray3[4]=r provarray3[3]=1 provarray3[2]=7 provarray3[1]=a provarray3[0]=5