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> ) { |
If (<condizione>) { |
if (<condizione>) { } else { |
In PHP qualsiasi numero diverso da 0, è considerato ‘vero’
|
In sostanza, PHP considera come falsi:
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 { } 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) { foreach ($arr as $valore) { |
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. |
|