La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione Web Approfondimenti di PHP. Gestione dello stato.

Presentazioni simili


Presentazione sul tema: "Programmazione Web Approfondimenti di PHP. Gestione dello stato."— Transcript della presentazione:

1 Programmazione Web Approfondimenti di PHP

2 Gestione dello stato

3 3 Cookie I cookie possono essere utilizzati per memorizzare informazioni sul client su richiesta di uno script (max 4KB) Una volta creato, il cookie è accessibile solo dal server che lo ha richiesto Possibile configurare il browser per: notificare l’utente della ricezione dei cookie rifiutare la ricezione di cookie Possibile analizzare/rimuovere i cookie memorizzati dal browser Programmazione Web - PHP: approfondimenti

4 4 Struttura di un cookie Cookie = (Nome, Valore, Scadenza, …) Nome = identificatore di accesso al dato memorizzato (il solo obbligatorio) Valore = informazione memorizzata nel cookie (se è null il cookie è cancellato dal client) Scadenza = data in cui il cookie viene “dimenticato” (rimosso) dal browser secondo il formato timestamp Unix (ottenuto tramite la funzione time() ) Cookie  variabile persistente (tra diverse sessioni) con scadenza stabilita Programmazione Web - PHP: approfondimenti

5 5 Uso di un cookie Uso della funzione PHP setcookie()  chiamata prima di qualsiasi altra istruzione Negli script si accede ai cookie mediante l’array superglobale $_COOKIE, dove sono registrati solo i cookie già ricevuti dal client Programmazione Web - PHP: approfondimenti

6 6 Sessioni I cookie presentano problemi evidenti di sicurezza (sono memorizzati sul client) hanno una dimensione limitata (max 4KB) possono essere cancellati o disabilitati sul client Le sessioni permettono la memorizzazione di variabili “persistenti” sul server in un file di testo Programmazione Web - PHP: approfondimenti

7 7 Creazione di una sessione Una sessione viene invocata tramite la funzione session_start() Dopo che è stata invocata la funzione session_start(), l'interprete PHP crea un nuovo file di testo sul server contenente i dati della sessione associa alla sessione un identificatore univoco, accessibile tramite la funzione session_id() costruisce un array associativo superglobale $_SESSION dove le informazioni sono caricate e accessibili direttamente Nell’array associativo è possibile salvare tutte le informazioni desiderate come coppie Programmazione Web - PHP: approfondimenti

8 8 Memorizzazione di session_id Qualora i cookie siano abilitati sul browser, l’identificatore della sessione viene passato al client attraverso un cookie In caso contrario, è comunque possibile utilizzare le sessioni utilizzando il meccanismo dell’url rewriting, cioè affiancando una variabile agli URL che compaiono nella pagina restituita all’utente Il nome del cookie e della variabile passata via URL viene di default impostato a PHPSESSID all’interno del file php.ini e si può gestire sia agendo direttamente sul file oppure utilizzando la funzione session_name() Programmazione Web - PHP: approfondimenti

9 9 Caricamento della sessione Per riesumare una sessione, si usa sempre la funzione session_start() Dopo che è stata invocata la funzione session_start(), l'interprete PHP riconosce l’utente dall’ID della sessione, recuperandolo dal cookie o dall’URL L'interprete PHP carica quindi i dati dal file di testo presente sul server, associato all’ID della sessione, e li mappa nell’array associativo $_SESSION Tutte le modifiche apportate a $_SESSION vengono poi riportate nel file di testo al termine dell’esecuzione dello script Programmazione Web - PHP: approfondimenti

10 10 Esempio Programmazione Web - PHP: approfondimenti

11 11 …e le successive! Programmazione Web - PHP: approfondimenti

12 12 Distruzione di una sessione (I) Di norma, una sessione ha validità finché il browser è attivo. Per distruggere esplicitamente la sessione si usa la funzione session_destroy() Le variabili di sessione sono tuttavia ancora accessibili nello script che ha distrutto la sessione Per rimuovere tutte le variabili di sessione si usa la funzione unset Devis Programmazione Web - PHP: approfondimenti

13 13 Distruzione di una sessione (II) La distruzione di una sessione supportata da cookie implica la rimozione (anche) del cookie nome del cookie relativo all’identificatore della sessione: session_name() Procedura (completa) di distruzione della sessione: rimozione di tutte le variabili di sessione se esiste un cookie di sessione, viene rimosso distruzione della sessione Programmazione Web - PHP: approfondimenti

14 14 Esempio: gestione del login utente login.php Programmazione Web - PHP: approfondimenti

15 15 Esempio: gestione del login utente login.php Programmazione Web - PHP: approfondimenti

16 16 Esempio: gestione del login utente homePage.php Programmazione Web - PHP: approfondimenti

17 17 homePage.php Programmazione Web - PHP: approfondimenti

18 18 Esempio: gestione del login utente offerte.php Programmazione Web - PHP: approfondimenti

19 19 Esempio: gestione del login utente offerte.php Programmazione Web - PHP: approfondimenti

20 20 Esempio: gestione del login utente logout.php Programmazione Web - PHP: approfondimenti

21 21 logout.php Programmazione Web - PHP: approfondimenti

22 22 Gestione della scadenza delle sessioni Due gli elementi che tengono in vita una sessione l’id della sessione fornito dal client (per esempio tramite i cookie) il file con i dati della sessione sul server Il client smette di trasmettere l’id quando scade il cookie di sessione la scadenza è regolata dalla funzione session_set_cookie_param() e dalla direttiva session.cookie_lifetime del file php.ini di default è impostata a 0, vale a dire i cookie scadono alla chiusura del browser Il file dei dati di sessione scade dopo un numero di secondi impostato nella direttiva session.gc_maxlifetime nel file php.ini (default 24 minuti) dopo tale scadenza, il file verrà eliminato con una probabilità impostata dalle direttive session.gc_probability e session.gc_divisor (default 1%) Programmazione Web - PHP: approfondimenti

23 23 Uso dell'URL rewriting Le informazioni sulle sessioni sono salvate direttamente nei link presenti nella pagina restituita all’utente: Esplicitamente Ogni URL nella pagina restituita all’utente sarà impostato come Automaticamente (previsto da PHP4 in poi) Va riconfigurato php.ini L'URL rewriting (automatico o esplicito) è sconsigliato per motivi di sicurezza (l’id della sessione appare in chiaro negli URL della pagina) script.php? = ini_set('session.use_trans_sid', false); Programmazione Web - PHP: approfondimenti

24 Upload di file

25 25 Gestione dell’upload di file Input di file mediante: Attributo enctype nel form: enctype="multipart/form-data" Informazioni relative al file caricato disponibili nell’array associativo $_FILES, indicizzato dal valore dell’attributo name specificato nel form di upload Ogni elemento di $_FILES è un array associativo di 4 elementi: Programmazione Web - PHP: approfondimenti

26 26 Form di upload del file (I) Programmazione Web - PHP: approfondimenti

27 27 Form di upload del file (II) Programmazione Web - PHP: approfondimenti

28 28 Gestione del form di upload del file Programmazione Web - PHP: approfondimenti

29 29 Gestione del form di upload del file Programmazione Web - PHP: approfondimenti

30 30 Funzioni di manipolazione dei file (I) Test di esistenza di un file: file_exists() Test della natura di un file: is_file(), is_dir() if(file_exists("grano.jpg")) echo "Il file esiste!" else echo "Il file non esiste!" if(is_file($nome)) echo "$nome è un file!"; else if(is_dir($nome)) echo "$nome è una directory!"; else echo "$nome non è un file/directory!"; Programmazione Web - PHP: approfondimenti

31 31 Funzioni di manipolazione dei file (II) Test di manipolabilità: is_readable(), is_writable(), is_executable() Dimensione di un file: filesize() (restituisce false se ci sono problemi) Cancellazione di un file: unlink() if(is_readable($nome)) echo "Il file $nome è leggibile!"; if(is_writable($nome)) echo "Il file $nome è scrivibile!"; if(is_executable($nome)) echo "Il file $nome è eseguibile!"; echo "La dimensione del file $nome è di ". filesize($nome). " byte"; unlink($nome); echo "Il file $nome è stato rimosso"; Programmazione Web - PHP: approfondimenti

32 32 Funzioni di manipolazione delle directory Creazione di una directory: mkdir() Rimozione di una directory: rmdir() mkdir("upload", 0755); rmdir("upload"); Programmazione Web - PHP: approfondimenti

33 33 Funzioni di manipolazione delle directory Apertura di una directory (per poter leggerla): opendir() Lettura di una directory: readdir() $dir = opendir("upload"); Programmazione Web - PHP: approfondimenti

34 Intestazione HTTP

35 35 Gli header HTTP Normalmente, PHP è usato per costruire il corpo della risposta HTTP del server, che per default presenta un’intestazione HTTP standard contenente, tra gli altri, il tipo MIME del file HTML ( text/html ) Talvolta è necessario gestire le intestazioni del protocollo HTTP (headers) Due tipologie di headers request headers: inviati dal browser verso il server quando viene generata una richiesta HTTP (per esempio, tramite il click su un link) response headers: inviati dal server al browser in risposta ad una determinata richiesta (per esempio, sotto forma di comune pagina HTML) Programmazione Web - PHP: approfondimenti

36 36 Headers inviati nella richiesta Per visualizzare gli headers inviati nella richiesta si può usare la funzione getallheaders() che produce un array contenente tutte le informazioni relative agli headers inviati in input (alias di apache_request_headers() ) Programmazione Web - PHP: approfondimenti

37 37 Headers inviati nella risposta Esiste un’analoga funzione apache_response_headers() per visualizzare gli headers nella risposta HTTP Talvolta è necessario modificare/aggiungere altre intestazioni per re-dirigere il browser su un’altra pagina (eventualmente dopo un certo tempo) per evitare il caching della pagina per modificare il content type della pagina... A tale scopo esiste la funzione header() La funzione header() deve essere invocata prima di qualsiasi altro output, di qualunque elemento HTML o di qualunque spazio Programmazione Web - PHP: approfondimenti

38 38

39 39

40 40 Buffering Le intestazioni devono precedere qualunque contenuto, perché una volta che la pagina inizia ad essere inviata non è più possibile modificare l’intestazione della risposta HTTP Questo vincolo può essere aggirato con il meccanismo del buffering la funzione ob_start() viene posta immediatamente prima del contenuto della pagina, compresi eventuali spazi bianchi in tal modo, lo script non inizia ad inviare la pagina fino a quando non ha terminato la sua esecuzione si può ripristinare il consueto meccanismo di emissione immediata dell’output invocando la funzione ob_end_flush() Programmazione Web - PHP: approfondimenti

41 Approfodimento sull'uso di array e stringhe

42 42 Array Array = variabile che contiene un insieme (indicizzato) di elementi Elemento: scalare (semplice) o un altro array Individuazione degli elementi mediante indicizzazione associativa numerica Programmazione Web - PHP: approfondimenti

43 43 Array indicizzati numericamente Creazione di array mediante enumerazione dei suoi elementi: Creazione di array mediante assegnamento con un altro array: Creazione di array mediante caricamento da database $strumenti = array('flauto', 'violino', 'oboe', 'liuto'); $a = $strumenti; $numeri = range(1, 10); $numeri = array(1,2,3,4,5,6,7,8,9,10); $lettere = range('a', 'z'); $lettere = array('a','b',..., 'z'); Programmazione Web - PHP: approfondimenti

44 44 Array indicizzati associativamente Indice rappresentato da un nome (chiave): $prezzi = array('flauto'=>2500, 'violino'=>8000, 'oboe'=>5400, 'liuto'=>11000); Programmazione Web - PHP: approfondimenti

45 45 Operatori per array $a = array(1,2,3); $b = array(4,5,6,7,8); $c = array('1','2','3'); $a + $b: (1,2,3,7,8) $a == $b: false $a == $c: true $a === $c: false Programmazione Web - PHP: approfondimenti

46 46 Array multidimensionali (I) Indicizzazione numerica: $articoli = array(array('FLT','flauto', 2500), array('VLN', 'violino', 8000), array('OBO', 'oboe', 5400), array('LUT', 'liuto',11000)); Programmazione Web - PHP: approfondimenti

47 47 Array multidimensionali (II) Accesso mediante ciclo for : for($riga=0; $riga<4; $riga++) { for($colonna=0; $colonna<3; $colonna++) echo $articoli[$riga][$colonna]. ' '; echo ' '; } FLT flauto 2500 VLN violino 8000 OBO oboe 5400 LUT liuto Programmazione Web - PHP: approfondimenti

48 48 Array multidimensionali (III) Indicizzazione mista: $articoli = array(array('codice'=>'FLT', 'strumento'=>'flauto', 'prezzo'=>2500), array('codice'=>'VLN', 'strumento'=> 'violino', 'prezzo'=>8000), array('codice'=>'OBO', 'strumento'=>'oboe', 'prezzo'=>5400), array('codice'=>'LUT', 'strumento'=>'liuto', 'prezzo'=> 11000)); Programmazione Web - PHP: approfondimenti

49 49 Array multidimensionali (IV) Accesso mediante ciclo foreach : foreach($articoli as $articolo) { foreach($articolo as $indice => $contenuto) echo "$indice: $contenuto "; echo ' '; } codice: FLT strumento: flauto prezzo: 2500 codice: VLN strumento: violino prezzo: 8000 codice: OBO strumento: oboe prezzo: 5400 codice: LUT strumento: liuto prezzo: $articoli Programmazione Web - PHP: approfondimenti

50 50 Ordinamento di array (I) Ordinamento di array indicizzati numericamente: sort() $strumenti = array('flauto', 'violino', 'oboe', 'liuto'); sort($strumenti); Programmazione Web - PHP: approfondimenti

51 51 Ordinamento di array (II) Ordinamento di array indicizzati associativamente: ksort() e asort() $prezzi = array('flauto'=>2500, 'violino'=>8000, 'oboe'=>5400, 'liuto'=>11000); ksort($prezzi); asort($prezzi); Programmazione Web - PHP: approfondimenti

52 52 Ordinamento di array (III) Ordinamento di array in ordine inverso: rsort(), krsort() e arsort() rsort($strumenti); krsort($prezzi); arsort($prezzi); Programmazione Web - PHP: approfondimenti

53 53 Riordinamento casuale di array Programmazione Web - PHP: approfondimenti

54 54 Inversione di array array_reverse($a) : genera un array inverso di $a $inv_str = array_reverse($strumenti); $inv_art = array_reverse($articoli); Programmazione Web - PHP: approfondimenti

55 55 Conteggio di elementi negli array count($a) : restituisce il numero di elementi dell’array $a array_count_values($a) : restituisce un array associativo che indica la frequenza di ogni elemento nell’array $a (gli elementi di $a devono esserescalari) Programmazione Web - PHP: approfondimenti

56 56 Conversione di array associativi in variabili scalari extract(array a [, int tipologia [, string prefisso]]) : genera un insieme di variabili omonime delle chiavi di a Parametri opzionali: tipologia : tipologia di gestione delle collisioni (default: sovrascrittura) prefisso : rilevante per certe tipologie di collisione extract($prezzi); echo "$flauto $violino $oboe $liuto" Programmazione Web - PHP: approfondimenti

57 57 Caricamento di array da file Programmazione Web - PHP: approfondimenti

58 58 Navigazione di array Array: ha un puntatore interno che punta all’elemento corrente dell’array (creazione array  punta al primo elemento) current($a)  restituisce elemento corrente each($a)  restituisce elemento corrente; incrementa puntatore next($a)  incrementa puntatore; restituisce elemento corrente reset($a)  posiziona puntatore al primo elemento (e lo restituisce) end($a)  posiziona puntatore all’ultimo elemento (e lo restituisce) prev($a)  decrementa puntatore; restituisce elemento corrente $a = array("alfa", "beta", "gamma"); $stringa = end($a); while($stringa) { echo "$stringa "; $stringa = prev($a); } gamma beta alfa Programmazione Web - PHP: approfondimenti

59 59 Pulitura di stringhe string trim(string stringa) : rimozione di spaziatura intorno a stringa Spazio bianco ‘ ‘ Newline "\n" Carriage return "\r" Tab orizzontale "\t" Tab verticale "\x0B" Fine stringa "\0" string ltrim(string stringa) : pulitura solo a sinistra string rtrim(string stringa) : pulitura solo a destra $nome = trim($_POST['nome']); $ = trim($_POST[' ']); Programmazione Web - PHP: approfondimenti

60 60 Rendering dei Newline string nl2br(string stringa) : sostituzione di "\n" con " ” Programmazione Web - PHP: approfondimenti

61 61 Formattazione di stringhe per la stampa void printf(string formato [, mixed args...]) string sprintf(string formato [, mixed args...]) formato : specifica del formato della stringa di output mediante codici args : variabili che istanziano i codici nel formato Specifiche di conversione multiple: echo "Il costo totale è $costo_totale"; printf("Il costo totale è %s", $costo_totale)"; printf("Il costo totale è %.2f", $costo_totale)"; Il costo totale è 83,8 Il costo totale è 83,80 printf("Il costo totale è %.2f (con spedizione %.2f)", $costo_totale, $costo_con_spedizione); Il costo totale è (con spedizione 88.80) Programmazione Web - PHP: approfondimenti

62 62 Formattazione di stringhe per la stampa Sintassi specifica di conversione: % ['carattere-riempimento] [ - ] [larghezza] [. precisione] codice Programmazione Web - PHP: approfondimenti

63 63 Formattazione di stringhe per la stampa Cambiamento del case (maiuscola-minuscola) di stringhe: Utile nel confronto tra stringhe: $subject = 'Feedback dal sito web'; if(strtolower($ ) == $to = else $to = Programmazione Web - PHP: approfondimenti

64 64 Formattazione di stringhe per la memorizzazione Problemi nella memorizzazione di stringhe nel database: apici, \, NULL Inibizione dei metacaratteri mediante backslash: \', \", \\ string addslashes(string stringa) string stripslashes(string stringa) $feedback = addslashes(trim($_POST['feedback'])); $feedback = stripslashes($feedback); Programmazione Web - PHP: approfondimenti

65 65 Esplosione ed implosione di stringhe array explode(string separatore, string input [, int limite]) string implode(array input, string separatore) string strtok(string input, string separatore) : preleva da input un token alla volta $ _array = $ ); if(strtolower($ _array[0] == 'luigi.rossi') $to = else $to = $ = implode($ _array, $token = strtok($feedback, ' '); do{ echo "$token "; $token = strtok(' '); } while($token != ''); Prima call  due parametri Successive call  un solo parametro (separatore) Programmazione Web - PHP: approfondimenti

66 66 Prelievo di sottostringhe string substr(string stringa, int inizio [, int lung]) inizio : indice da cui prelevare la sottostringa (se negativo  dalla fine) lung : numero di caratteri da prelevare (se non specificato  fino alla fine) $feedback = 'Il vostro servizio clienti è eccellente'; Programmazione Web - PHP: approfondimenti

67 67 Confronto di stringhe int strcmp(string stringa1, string stringa2) stringa1 == stringa2  risultato = 0 stringa1 > stringa2  risultato > 0 stringa1 < stringa2  risultato < 0 int strnatcmp(string stringa1, string stringa2) : confronto sulla base di un criterio 'naturale' (http://www.naturalordersort.org) Versioni non sensibili alle maiuscole/minuscole (case insensitive): strcasecmp() strnatcasecomp() echo strcmp('15', '2'); echo strnatcmp('15', '2'); 1 Programmazione Web - PHP: approfondimenti

68 68 Ricerca di sottostringhe string strstr(string pagliaio, string ago) se ago trovato nel pagliaio  sottostringa dall’inizio di ago se ago non trovato nel pagliaio  false se più occorrenze di ago nel pagliaio  prima occorrenza di ago Assegnamento del destinatario in base a parole chiave nel feedback: Varianti: stristr() : case insensitive strrchr()  sottostringa partendo dall’ultima occorrenza di ago $to = // default if(strstr($feedback, 'negozio')) $to = elseif(strstr($feedback, 'consegna')) $to = elseif(strstr($feedback, 'fattura')) $to = Programmazione Web - PHP: approfondimenti

69 69 Ricerca posizione di sottostringhe int strpos(string pagliaio, string ago [, int offset ])  restituisce la posizione della prima occorrenza di ago in pagliaio offset : punto in pagliaio da cui iniziare a cercare se ago non si trova nel pagliaio  false più veloce di strstr() Se ago non si trova nel pagliaio  false : strpos() rimane non definito $saluto = 'Hello world'; echo strpos($saluto, 'world'); echo strpos($saluto, 'l', 5); $pos = strpos($saluto, 'Hello'); if($pos === false) echo 'Non trovato'; else echo "Trovato alla posizione $pos"; Trovato alla posizione Programmazione Web - PHP: approfondimenti

70 70 Sostituzione di sottostringhe (I) mixed str_replace(mixed ago, mixed nuovo, mixed pagliaio [, int &tot ]) sostituisce tutte le occorrenze di ago in pagliaio restituisce il nuovo pagliaio se specificato, assegna a tot il numero di sostituzioni effettuate Possibile passare array invece di stringhe: $saluto = 'Hello world, wonderful world!'; $tot = 0; echo str_replace('world', 'people', $saluto, $tot)."($tot)"; $feedback = 'Questo negozio fa schifo! Veramente schifo!'; $censurate = array('schifo',...); echo str_replace($censurate, '***', $feedback); Programmazione Web - PHP: approfondimenti

71 71 Sostituzione di sottostringhe (I) mixed str_replace(mixed ago, mixed nuovo, mixed pagliaio [, int &tot ]) sostituisce tutte le occorrenze di ago in pagliaio restituisce il nuovo pagliaio se specificato, assegna a tot il numero di sostituzioni effettuate Possibile passare array invece di stringhe: $saluto = 'Hello world, wonderful world!'; $tot = 0; echo str_replace('world', 'people', $saluto, $tot)."($tot)"; $feedback = 'Questo negozio fa schifo! Veramente schifo!'; $censurate = array('schifo',...); echo str_replace($censurate, '***', $feedback); Hello people, wonderful people! (2) Questo negozio fa ***! Veramente ***! Programmazione Web - PHP: approfondimenti

72 72 Sostituzione di sottostringhe (III) string substr_replace(string stringa, string sostituto, int inizio [, int lung ]) sostituisce una parte di stringa con sostituto inizio : posizione di stringa in cui inizia la sostituzione (se negativo, posizione dalla fine) lung positiva o nulla  numero di caratteri sostituiti lung negativa  posizione (dalla fine) su cui terminare la sostituzione $saluto = 'Hello world'; echo substr_replace($saluto, 'people', 6, 5); echo substr_replace($saluto, 'people ', 6, 0); echo substr_replace($saluto, 'people ', 6, -2); Hello people Hello people world Hello people ld Programmazione Web - PHP: approfondimenti

73 73 Espressioni regolari Pattern matching complessi (non semplicemente uguaglianze di stringhe) Due possibili stili: POSIX, Perl (PCRE) Espressione regolare = notazione per specificare un pattern in un testo Uso di metacaratteri per specificare particolari pattern Programmazione Web - PHP: approfondimenti

74 74 Insiemi di caratteri (I) Un qualsiasi carattere diverso da \n:. Classe di caratteri: [ lista-di-caratteri ].emo [aeiou] [a-z] [a-zA-Z] [^a-z] [^aeiou] compatibile con remo, temo, memo, … vocali range delle lettere alfabetiche minuscole range delle lettere alfabetiche qualsiasi carattere che non sia una lettera alfabetica minuscola qualsiasi carattere che non sia una lettera vocale Programmazione Web - PHP: approfondimenti

75 75 Insiemi di caratteri (II) Classi di caratteri predefinite: Programmazione Web - PHP: approfondimenti

76 76 Ripetizione e alternativa Ripetizione zero o più volte del pattern: * Ripetizione una o più volte del pattern: + Opzionalità: ? Alternativa: | [aeiou]* [[:alpha:]][[:alnum:]] * [[:digit:]] + [[:digit:]] +, [[:digit:]] + [[:digit:]] + [aeiou]? org|net|com Zero o più vocali Lettera seguita da zero o più caratteri alfanumerici (identificatore) Una o più cifre decimali (numero intero) Numero reale con parte decimale Numero eventualmente seguito da una vocale Programmazione Web - PHP: approfondimenti

77 77 Sottoespressioni Possibile raggruppare sottoespressioni mediante parentesi: Ripetizione di un pattern un numero vincolato di volte: { limiti } (molto )*grande grande molto grande molto molto grande … [[:digit:]]{16} (molto ){1,3}grande (molto ){2,}grande Numero intero di 16 cifre decimali molto grande molto molto grande molto molto molto grande molto molto grande molto molto molto grande molto molto molto molto grande Programmazione Web - PHP: approfondimenti

78 78 Ancoraggio Possibile specificare la posizione di una sottostringa: ^Hello world$ ^[[:alpha:]][[:alnum:]]*$ [[: :]] Hello world Hello people Hello everybody Hello world Beutfiful world Best world Stringa costituita unicamente da un identificatore 123 alfa Programmazione Web - PHP: approfondimenti

79 79 Caratteri speciali Per inibire i caratteri speciali al di fuori di [ ], è necessario precederli con \ Meglio inserire il pattern tra apici singoli (non doppi): Se pattern tra apici doppi  parsing della stringa  necessari ulteriori \ ' [[:digit:]] +\. [[:digit:]] +' " [[:digit:]] +\\. [[:digit:]] +" Programmazione Web - PHP: approfondimenti

80 80 Applicazione del modulo di feedback Rilevazione di particolari termini nel feedback del cliente: Controllo nome del cliente: Controllo formato indirizzo di negozio|consegna|fattura Luigi Rossi G. Luigi Rossi G.C. Luigi Rossi ^(([[:upper:]]\.)+ )?[[:upper:]][[:lower:]]+ [[:upper:]][[:lower:]]+$ Programmazione Web - PHP: approfondimenti

81 81 Ricerca di sottostringhe con espressioni regolari bool ereg(string pattern, string stringa) stabilisce se stringa contiene una sottostringa compatibile con pattern case-sensitive Variante case-insensitive: eregi() Programmazione Web - PHP: approfondimenti

82 82 Ricerca di sottostringhe con espressioni regolari string ereg_replace(string pattern, string sostituto, string stringa) sostituisce con sostituto tutte le sottostringhe di stringa compatibili con pattern restituisce il risultato della sostituzione (funzionale: stringa non cambia!) Variante case-insensitive: eregi_replace() $transazione = 'Carta di credito: '; $pattern = '[[:digit:]]{4}(-[[:digit:]]{4}){3}'; echo ereg_replace($pattern, 'xxxx-xxxx-xxxx-xxxx', $transazione); $stringa = 'alfa 23beta gamma48 125'; $pattern = '[[: :]]'; echo ereg_replace($pattern, 'NUM', $stringa); Carta di credito: xxxx-xxxx-xxxx-xxxx alfa 23beta gamma48 NUM Programmazione Web - PHP: approfondimenti

83 83 Dividere stringhe con espressioni regolari array split(string pattern, string stringa [, int max]) restituisce l’array di stringhe ottenuto dividendo stringa limitata dai confini compatibili con pattern max : numero massimo di elementi nell’array risultante $ = $a = $ ); $espressione = '3*52+24/5-12'; $operandi = split('[-+*/]', $espressione); Programmazione Web - PHP: approfondimenti

84 84 Funzioni deprecated ereg(‘pattern’,’stringa’)  sostituito da preg_match(‘/pattern/’,’stringa’) eregi(‘pattern’,’stringa’)  sostituito da preg_match(‘/pattern/i’,’stringa’) ereg_replace(‘pattern’,’sostituto’,’stringa’)  sostituito da preg_replace(‘/pattern/’,’sostituto’,’stringa’) uso di ‘/pattern/i’ in caso di eregi_replace split(‘pattern’,’stringa’)  sostituito da preg_split(‘/pattern/’,’stringa’) Programmazione Web - PHP: approfondimenti


Scaricare ppt "Programmazione Web Approfondimenti di PHP. Gestione dello stato."

Presentazioni simili


Annunci Google