PHP

Commenti           

// Per commenti su una sola riga.

# Per commenti su una sola riga, è un modo poco utilizzato

/*.....*/ Per commenti su più righe.

Variabili predefinite

$HTTP_GET_VARS

contiene le variabili passate allo script tramite la modalità GET

$HTTP_POST_VARS

 

$HTTP_SERVER_VARS

 

$HTTP_COOKIE_VARS

 

 

Simboli stringa:

Da ricordare che per scrivere un carattere speciale basta anteporre la barra ''

 

Operatore

Significato

\n

Nuova linea

\r

A capo        

\t

tabulazione

\\

scrive una sola barra

\$

scrive il segno dollaro

if( <condizione> ) {
<codice>
}

If (<condizione>) {
<codice>
} else {
<codice>
}

if (<condizione>) {
<codice>
} elseif (<condizione>) {
<codice>

} else {
<codice>
}

 

In PHP qualsiasi numero diverso da 0, è considerato ‘vero’

 

In sostanza, PHP considera come falsi:

  • il valore     numerico 0, nonchè una stringa che contiene ’0′

  • una stringa     vuota        

  • un array con     zero elementi        

  • un valore NULL, cioè una variabile che     non è stata definita o che è stata eliminata con unset(), oppure a     cui è stato assegnato il valore NULL esplicitamente    

Qualsiasi altro valore, per PHP è un valore vero

 

switch(condizione){

  case "":

      istruzione;

  break;

}

switch (<condizione>) {

   case <valore 1>:

      <codice>

      break;

   case <valore 1>:

      <codice>

      break;

   ....

   default:

      <codice>;

      break;

}

L’operatore ternario

L’operatore ternario è così chiamato perchè è formato da tre espressioni: il valore restituito è quello della seconda o della terza di queste espressioni, a seconda che la prima sia vera o falsa.

($altezza >= 180)? ‘alto’ : ‘normale’ ;


$tipologia = ($altezza >= 180) ? ‘alto’ : ‘normale’;

 

for(<inizializzazione>; <condizione>; <aggiornamento>)

{

    // istruzioni da eseguire mentre <condizione> è vera

}

while(condizione){

    istruzioni;

}

do {
// istruzioni da eseguire

} while (condizione)

 

Uscire da un ciclo

possiamo dire a PHP di non completare la presente iterazione e passare alla successiva (con continue) oppure di interrompere definitivamente l’esecuzione del ciclo (con break).

foreach

Questo ci permette di costruire un ciclo che viene ripetuto per ogni elemento di una collezione passata come argomento.

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.

foreach ($arr as $chiave => $valore) {
<codice>
}


foreach ($arr as $valore) {
<codice>
}

Funzioni

 

echo

echo();       

echo"..testo..";

riceve come parametro una stringa di testo da visualizzare e non restituisce valori

All'interno possiamo inserire stringhe o istruzioni (compreso fra apici doppi o singoli se non è codice PHP).

Il comando echo a differenza di print può contenere più stringhe, purché siano separate da un punto.

print();       

print"..testo..";

 

isset : controlla se una variabile è stata definita, riceve come parametro la variabile da controllare (Vero se la variabile è stata definita)

 

sort() :

count : riceve come parametro un array e restituisce un valore numerico corrispondente al numero di elementi contenuti nell’array

each(): prende come parametro un insieme (un array) e restituisce 1 coppia chiave/valore. La chiave di un array è il suo indice numerico (0 per il primo elemento, 1 per il secondo, 2 per il terzo e cosi via). Il valore è ovviamente il contenuto di quel "sotto-cassetto". I due valori vengono restituiti in un altro array di due elementi

list(): La funzione list() però risolve tutto: prende come parametro delle variabili temporanee, dei contenitori dove memorizzare (con "=" assegnamo ad una funzione un valore) il risultato di each

Data ed orario

 

Timestamp

Il timestamp non è altro che il numero di secondi a partire da una data ben precisa, il 1° Gennaio 1970, e serve come punto di riferimento per risalire a tutte le date.

Se dovete memorizzare una data DOVETE memorizzare il suo timestamp, dal quale potrete risalire alla data

un giorno=86400 secondi

time()

Quando vogliamo trovare il timestamp attuale dobbiamo eseguire la funzione time()

Time() restituisce il numero di secondi a partire dal 1° Gennaio 1970

date()

date('parametri', $X);

Questa funzione restituisce la data di un preciso momento, nel formato indicato al suo interno.

$X è una variabile definita in precedenza che contiene il valore numerico del timestamp a cui ci riferiamo. Se non è presente ci riferiamo a quello attuale.

mktime()

Questa funzione fornisce il timestamp di una data ben precisa (inserire solo numeri interi).

mktime(ore, minuti, secondi, mese, giorno, anno);

checkdate()

Questa funzione controlla se i valori corrispondono ad una data corretta

checkdate(mese, giorno, anno);

Restituisce true o false.

 

I parametri che inseriremo forniranno il formato data che desideriamo.

 

Parametro

Descrizione

Y

anno in 4 cifre

y        

anno in 2 cifre

n        

mese numero (1-12)

m        

mese numero in 2 cifre (01-12)

F    

mese testuale ('January' - 'December')       

M    

mese testuale su 3 lettere ('Jan' - 'Dec')

d    

giorno su due cifre (01-31)

j    

giorno (1-31)

w

giorno settimanale, numerico (0=dom, 1=lun ecc.)       

l    

giorno settimanale, testuale ('Sunday', 'monday',             ecc.)

D    

giorno settimanale in 3 lettere ('Sun', 'mon',             ecc.)

H

ora in due cifre (00-23)

G    

ora (0-23)

i        

minuti (00-59)

s       

secondi (00-59)

Funzioni definite dal programmatore:

 

Function prima($x1, $x2, $x3...){

....

}

Function prima($x1, $x2, $x3){

$e = $x1 + $x2 + $x3;

return $e;

}

restituire più valori con la stessa funzione.

Questo è possibile restituendo un array, ossia un insieme di valori che una volta usciti dalla funzione possiamo scompattare in valori singoli.

 

è obbligatorio definire la funzione PRIMA di richiamarla

Return : per ritornare in dietro un valore dobbiamo inserire nella funzione il comando 'return', ma ricordiamoci che è obbligatorio solo quando la funzione deve restituire un risultato o quando vogliamo interromperla senza proseguire nelle successive istruzioni della funzione.

Per associare la variabile al dato risultante dalla funzione possiamo usare il costrutto predefinito list().

List() è una funzione predefinita del php (da utilizzare con gli array), che associa le variabili contenute al suo interno con i rispettivi valori trovati all'interno dell'array in ordine crescente (la stessa posizione).

list() crea delle variabili e le associa con i valori contenuto dentro un array.

Default:Potrebbe accadere che uno o più valori chiamati da una funzione non vengano restituiti. In questo caso possiamo ovviare all'inconveniente associando un valore prestabilito in fase di dichiarazione di funzione.

           

Riferimento a variabili:

Come nel linguaggio C possiamo riferirci alle variabili. Il problema nasce nel momento in cui manipoliamo una variabile globale in una funzione e vogliamo che cambi valore anche esternamente.

Risolviamo il tuttorichiamando la funzione non con il nome della variabile, ma con il suo riferimento al nome.

La sintassi prevede di dichiarare la variabile fra le proprietà della funzione con il simbolo & che la precede.function abc(&$a)

 

Varibili resource:         (Per connessioni)       

Le variabili resource sono le variabili risultanti da una connessione esterna, solitamente su database. Queste variabili non possono essere manipolate (non possono variare) e non le possiamo usare per nessun calcolo.

$nomeacaso = ...funzione che apre la connessione...;

 

Esistono due sistemi per passare dati ad uno script: il metodo GET e il metodo POST.

 

Il metodo GET consiste nell’accodare i dati all’indirizzo della pagina richiesta, facendo seguire il nome della pagina da un punto interrogativo e dalle coppie nome/valore dei dati che ci interessano. Nome e valore sono separati da un segno di uguale. Le diverse coppie nome/valore sono separate dal segno ‘&’. Quindi, immaginando di avere la pagina prodotto.php che mostra le caratteristiche di un prodotto passandole il codice e la categoria del prodotto stesso, diciamo che, per visualizzare i dati del prodotto A7 della categoria 2, dovremo richiamare la pagina in questo modo:

<a href=”prodotto.php?cod=a7&cat=2″>

La stringa che si trova dopo il punto interrogativo, contenente nomi e valori dei parametri, viene detta query string. Quando la pagina prodotto.php viene richiamata in questo modo, essa avrà a disposizione, al suo interno, le variabili $_GET['cod'] (con valore ‘a7′) e $_GET['cat'] (con valore ’2′). Infatti i valori contenuti nella query string vengono memorizzati da PHP nell’array $_GET, che è un array superglobale in quanto è disponibile anche all’interno delle funzioni.

 

Il metodo POST viene utilizzato con i moduli: quando una pagina HTML contiene un tag <form>, uno dei suoi attributi è method, che può valere GET o POST. Se il metodo è GET, i dati vengono passati nella query string, come abbiamo visto prima. Se il metodo è POST, i dati vengono invece inviati in maniera da non essere direttamente visibili per l’utente, attraverso la richiesta HTTP che il browser invia al server.

I dati che vengono passati attraverso il metodo POST sono memorizzati nell’array $_POST. Anche questo array, come $_GET, è un array superglobale

L’interazione con l’utente e i moduli HTML

 

Array

I numeratori possono essere numerici o letterali, e non hanno un'obbligo sequenziale.

Gli array, anche se sono indicizzati, possono essere incrementati.

$vettore[] = 'contenuto';  aggiunge ‘contenuto’ alla fine del vettore

 

Gli array hanno anche la possibilità di avere dei numeratori letterali.

i numeratori letterali sono sempre racchiusi fra apici. Questa regola salta solo se l'elemento che richiama l'array è racchiuso fra i doppi apici.

 

Cancellare elementi o array:

Per eliminare gli elementi contenuti in un array basta usare la funzione unset()

unset($prova[1]); // elimina l'elemento 1 dell'array $prova

unset($prova); // elimina tutto l'array $prova

 

Possiamo trovare almeno tre tipi di array:

  • Un array che contiene pochi ed essenziali dati, conoscendone già il numero e le chiavi.

  • In questo caso possiamo ricavare i dati scrivendo     semplicemente il nome dell'array con il numeratore fra parentesi     quadre, ad esempio: echo $saluto[1];        

  • Un array di sistema fornito dalle procedure PHP, in questo caso dovrete consultare tali specifiche per risalire al nome ed alla chiave per trovare il dato in esso contenuto.        

  • Un array che contiene un numero indefinito di dati    

Per risalire ai dati contenuti in array con chiavi miste si utilizza la stessa procedure degli array con le chiavi letterali.    foreach()

 

Ordinare gli array

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

 

Include e Require:

<? include("nome_file.php"); ?>

Include permette di includere file all'interno di una pagina o script, e si attiva ogni volta che è richiesto dal programma.

Require:

<? require("nome_file.php"); ?>

Permette di inserire un file o script in una pagina web. La differenza dal comando include è che comunque sia strutturato il programma, il file contenuto dal costrutto require verrà inserito nel listato (anche se un ciclo IF non permette di proseguire, le istruzioni verranno comunque lette dalla macchina host).

Questo perché require è un costrutto del linguaggio che costringe ad inserire il file contenuto al posto della riga require.

Se sussiste un problema genera un errore di tipo "Fatal Error" ed interrompe la compilazione della pagina o script.

Sessioni php

La funzione che attiva una sessione, ed è la prima da inserire è session_start().

Per creare l'array globale di sessione è sufficente scrivere $_SESSION[], per creare variabili da inserire dentro l'array possiamo scrivere $_SESSION['user']=$user;

 

session_start();

Funzione che apre una sessione.    

$_SESSION['nomevariabile'];   

Questa riga crea l'array globale che contiene tutte le variabili di sesssione.

session_unset();

Distrugge le variabile nella sessione.    

session_destroy();

Funzione che distrugge una sessione.    

$PHPSESSID

Il nome della variabile globale che contiene il codice univoco di 32 caratteri che distingue la sessione. (Se scriviamo echo $PHPSESSID; scriviamo 32 caratteria a video se la sessione è attiva.)

Se per motivi di protezione non è possibile utilizzare direttamente la variabile $PHPSESSID è possibile inserire la funzione session_id();

esempio:

$PHPSESSID=session_id();       

session_set_cookie_params();

Imposta il numero di     secondi di inattività oltre i quali la sessione è cancellata. Se     non è impostata utilizza le impostazioni di default del file     php.ini contenuto sul server.    

 

Cookie

setcookie($nome,$value,$expire,$path,$dominio,$secure);

  • $nome Indica     il nome del cookie.        

  • $value Indica     il valore del cookie.        

  • $expire Indica     il tempo dopo il quale cancelleremo il cookie (NON è obbligatorio,     ma se inserito deve contenere un valore numerico, 0 per indicare     "").        

  • $path Indica     la cartella o la pagina del sito dove il cookie è valido (serve per     creare un cookie specifico per alcune cartelle del sito. Se     inseriamo la barra "/" vuol dire che il cookie è valido     per tutto il sito).        

  • $dominio    Indica il dominio del sito dove il cookie è valido.        

  • $secure Può assumere valore 0 oppure 1.     Se impostato su 1 il cookie sarà spedito solo se la connessione è     sicura (https) (NON è obbligatorio, ma se inserito deve contenere     un valore numerico, 0 per indicare "").    

 

Per inserire più valori all'interno di un cookie dobbiamo utilizzare un array.

 

Per recuperare i dati da un cookie basta chiamare la variabile $_COOKIE["nome"], con nome uguale al nome dichiarato nella funzione setcookie().

Per richiamare dati contenuti in un array depositato con il cookie basta eseguire le funzioni per array sulla variabile $_COOKIE["nome"].

 

le sessioni NON hanno una data di scadenza come i cookie.

Le sessioni sono automaticamente eliminate appena il navigatore chiude il browser, mentre il cookie può persistere all'interno del pc anche per anni.

File

 

<?php

  //Presuppongo che la directory corrente abbia i permessi   corretti

  $fp = fopen(‘prova.txt’, ‘w+’); //Apro il file prova.txt in lettura, lo creo se non esiste

  fwrite($fp, ciao a tutti, come va?); //Scrivo una stringa sul file

  fclose($fp); //Chiudo il file aperto precedentemente

?>

<?php

   //Presuppongo che la directory corrente abbia i permessi corretti

   $fp = fopen(‘<path>’, ‘w+’);//Apro il file <path> in lettura, lo creo se non esiste

   fwrite($fp, ciao a tutti, come va?); //Scrivo una stringa sul file

   fclose($fp); //Chiudo il file aperto precedentemente

?>

L’operazione di apertura di un file avviene attraverso la funzione fopen che accetta, nella sua forma base, due parametri: il primo rappresenta il percorso (path) del file sul quale vorremmo operare. Il secondo è una stringa che indica alla funzione quali sono le operazioni che si desiderano svolgere sul file.

  • ‘r’ Apre in sola lettura. Posiziona il puntatore all’inizio del file   

  • ‘r+’ Apre in lettura e scrittura. Posiziona il puntatore all’inizio del file.        

  • ‘w’ Apre il file in sola scrittura. Posiziona il puntatore all’inizio del file e tronca il file alla lunghezza zero. Se il file non esiste, tenta di crearlo.        

  • ‘w+’ Apre in lettura e scrittura. Posiziona il puntatore all’inizio del file e     tronca il file alla lunghezza zero. Se il file non esiste, tenta di crearlo.        

  • ‘a’ Apre in sola scrittura. Posiziona il puntatore alla fine del file. Se il file non esiste, tenta di crearlo.    

  • ‘a+’ Apre in lettura e scrittura. Posiziona il puntatore alla fine del file. Se il file non esiste, tenta di crearlo.