Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di...

Post on 01-May-2015

227 views 3 download

Transcript of Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di...

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

• 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.

PHP è un linguaggio di programmazione lato server.

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:

<body><?phpecho"ciao"; ?></body>

<body><?phpecho"<b>ciao</b>, <br /> come ti chiami?"; ?></body>

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)

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’iconadi 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 serverLocale 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 variabiliIl 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 OperatoriPer 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

<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’arraysuperglobali $_ POST.

<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>

Calcola.htm Calcola.php

Le variabili superglobali $_GET, $_POST

PHP è un linguaggio dove in generale non sono supportate le cosiddette variabiliglobali, 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 introdottevariabili interne di sistema che hanno comportamenti analoghi e sono cosiddetteglobali, 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 condizioneif ($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 condizioneif ($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

while (condizione) {istruzione;istruzione;... ;};

do {istruzione;istruzione;... ;} while (condizione);

for ($i=0; $i<$n; $i++) {istruzione;istruzione;... ;};

Iterazione while

Iterazione do .. whileIterazione for

In PHP esistono tre tipi di cicli:•l'istruzione while •l'istruzione do .. while •l'istruzione for

Gli arrayGli 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:buongiornobuonaserabuonanotte

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:buongiornobuonaserabuonanotte

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--buongiornosera--buonaseranotte--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]=aprovarray[1]=cprovarray[2]=rprovarray[3]=1provarray[4]=5provarray[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]=7provarray[1]=5provarray[2]=1provarray[3]=rprovarray[4]=cprovarray[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]=aprovarray[5]=cprovarray[4]=rprovarray[3]=1provarray[0]=5provarray[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]=7provarray[0]=5provarray[3]=1provarray[4]=rprovarray[5]=cprovarray[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]=cprovarray2[1]=rprovarray2[2]=1provarray2[3]=7provarray2[4]=aprovarray2[5]=5

array_reverse con chiavi originali:provarray3[5]=cprovarray3[4]=rprovarray3[3]=1provarray3[2]=7provarray3[1]=aprovarray3[0]=5