C o r s o L i b e r o d i Emiliano Gabrielli GrUSP.it

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "C o r s o L i b e r o d i. 2005 Emiliano Gabrielli GrUSP.it"

Transcript

1 C o r s o L i b e r o d i 2005 Emiliano Gabrielli GrUSP.it

2 Licenza Corso Libero di PHP Copyright (c) 2005 Emiliano Gabrielli Quest'opera è stata rilasciata sotto la licenza Creative Commons Attribuzione NonCommerciale StessaLicenza. Per leggere una copia della licenza visita il sito web o spedisci una lettera a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 2

3 Indice degli argomenti trattati Introduzione al PHP un po' di storia diffusione cosa è in grado di fare Fondamenta struttura lessicale tipi di dati variabili garbage collection espressioni ed operatori istruzioni per il controllo di flusso inclusione di codice 3

4 Introduzione al PHP un po' di storia diffusione cosa è in grado di fare 4

5 Introduzione: un po' di storia concepito nel 1994 da Rasmus Lerdorf e rilasciato col nome di Personal Home Page Tools (PHP Tools) nel giugno del Scopo era fornire un framework di numerosi ed utili strumenti, un semplice parser individuava i tag nel codice HTML e richiamava varie funzioni C lavorando ad un progetto dell'università di Toronto si scelse PHP come strumento, ma si rese necessaria una ottimizzazione, raccogliendo i vari CGI in C all'interno di un web-server. La contemporanea diffusione di Apache, con la sua comoda API, permise l'aggiunta delle funzionalità di PHP al server. Annuncio di PHP/FI Server-side HTML-Embedded Scripting Language nell'aprile del Prima stesura di un vero parser nel 1997 la diffusione crebbe, anche se il parser era ancora instabile. Zeev Suraski ed Andi Gutmans riscrissero il parser dando vita, nel giugno del 1998, a PHP 3.0 che smise di essere il progetto di un singolo L'acronimo diventa autoreferenziale: PHP: Hypertext Preprocessor 5

6 Introduzione: un po' di storia (2) con la riscrittura ulteriore del parser, con l'introduzione di tecniche più efficienti, veloci e sicure, sempre ad opera di Zeev ed Andi si ha la nascita di PHP 4.0, basato sul nuovo Zend engine, e con le collaborazioni di numerosi sviluppatori viene rilasciato PHP 4.0 il 22 maggio del 2000 la release 5.0 di PHP si fonda sullo Zend Engine 2.0, ed ha la sua principale peculiarità nel supporto alla programmazione Object Oriented che nella versione precedente era solo parziale 6

7 Introduzione: diffusione di PHP Dicembre 2004: circa 18 milioni di domini fanno uso di PHP 7

8 Introduzione: struttura client-server Apache Internet Information Server Netscape iplanet 8 Browser web Firefox Mozilla Internet Explorer Netscape Safari Opera Richiesta Risposta Database Database Server Web Dati PHP MySQL Postgres SQL Server Oracle Sybase

9 Introduzione: cosa è in grado di fare Esistono tre modalità principali scripting lato server lo scopo per cui fu progettato originariamente. Per la generazione di contenuti web dinamici sono necessari un web server e PHP (nella sua forma CGI o come modulo del web server stesso) scripting da riga di comando PHP può essere utilizzato come linguaggio di scripting per la creazione di script per la gestione del sistema, come si fa con Perl, awk e la shell unix. Questo scopo può essere raggiunto tramite PHP- CLI (Command Line Interface) Applicazioni lato client (GUI, Graphic User Interface) tramite l'estensione PHP-GTK (gtk.php.net) è possibile realizzare delle GUI complete e multi-piattaforma in PHP 9

10 Introduzione: cosa è in grado di fare In particolare, nell'ambito della programmazione lato server: può essere usato coi più noti server Web Apache Microsoft IIS Netscape/iPlanet possibilità di produrre ogni genere di output: PDF, immagini PNG, JPG, GIF, filmati Flash vasta gamma di driver specifici per i più diversi DBMS: MySQL, PostgreSQL, Oracle, Sybase ed ogni database compatibile con ODBC vasta disponibilità di librerie ed estensioni pronte grazie a PEAR (PHP Extension and Application Repository) e a PECL 10

11 Fondamenta struttura lessicale tipi di dati variabili garbage collection espressioni ed operatori istruzioni per il controllo di flusso inclusione di codice 11

12 Fondamenta: struttura lessicale La sintassi di PHP è fortemente influenzata da altri linguaggi come Perl e C, se si conoscono già questi linguaggi non si avrà alcuna difficoltà; viceversa PHP è un linguaggio semplice da apprendere, anche grazie al fatto che non è tipizzato. sensibilità a maiuscole e minuscole nomi di funzioni, costrutti, parole chiave non sono sensibili alle maiuscole i nomi delle variabili sono invece case sensitive istruzioni una istruzione è una parte di codice che esegue un compito, sia questo una semplice assegnazione o un complesso ciclo in PHP le istruzioni semplici sono separate dal ; un blocco di istruzioni è racchiuso tra { } e costituisce una singola istruzione 12

13 Fondamenta: struttura lessicale (2) spazi ed interruzioni di linea gli spazi non hanno alcuna rilevanza una istruzione può essere interrotta da un numero arbitrario di interruzioni di linea commenti PHP ignora i commenti, che servono esclusivamente a chi legge il codice PHP supporta tre diversi tipi di commento commenti in stile shell, questi partono dal simbolo di # ed arrivano fino alla fine della riga e della sezione di codice commenti in stile C++, identici ai precedenti ma delimitati dalla sequenza // commenti in stile C, delimitati dalle sequenze di apertura /* e di chiusura */ possono estendersi su più righe e sono quindi adatti a commenti lunghi o ad escludere parti di codice 13

14 Fondamenta: struttura lessicale (3) letterali i letterali sono tutti i valori che appaiono direttamente nel codice numeri: 2005, 0xF1F0, stringhe: 'ciao mondo!', PHP costanti: TRUE, false, NULL identificatori un identificatore è semplicemente un nome, utilizzato per variabili, funzioni, costanti e classi il primo carattere può essere una lettera o un underscore, seguito da una lettera, un numero o un underscore (per lettera si intende [a-za-z\x7f- \xff], quindi comprende il codice ASCII Esteso) i nomi delle variabili iniziano con $ e sono case sensitive parole chiave: quelle utilizzate per funzionalità del linguaggio (if, break, etc..) 14

15 Fondamenta: tipi di dati PHP possiede otto diversi tipi di dati quattro tipi scalari: integer (interi), float (numeri in virgola mobile), string (stringhe) e boolean (booleani) due tipi composti: array (vettori) e object (oggetti) due tipi speciali: resource (risorse) e NULL (valore nullo) integer numeri interi (1, 23, -2034). L'intervallo in genere va da a , ma dipende dalla piattaforma. Equivale al tipo long del compilatore C sulla specifica piattaforma. I letterali possono essere scritti in decimale: 2005, 128, ottale: 0754 (492), +010 (8) esadecimale: 0x10 (16), 0xff (255), 0xDAD0 (-56016) 15

16 Fondamenta: tipi di dati (2) float numeri in virgola mobile, o reali (3.14, -2034,01). L'intervallo in genere va da 1,7E-308 a 1,7E+308 con 15 cifre di precisione, ma dipende dalla piattaforma. Equivale al tipo double del compilatore C sulla specifica piattaforma. I letterali possono essere scritti due notazioni standard: , 12.8, scientifica: E1 ( *101), +3.2E 2 (3.2*10-2) string visto l'uso frequente di stringhe nelle applicazioni web PHP ne incorpora il supporto; le stringhe sono sequenze di caratteri delimitate da apici o virgolette. tra apici i caratteri speciali sono \\ e \' tra virgolette valgono le sequenza di escape: \, \n, \r, \t, \\, \$, \{, \}, \[, \], \0 \777, \x0 \xff all'interno delle virgolette vengono espanse le variabili 16

17 Fondamenta: tipi di dati (3) boolean un tipo booleano può assumere i soli valori di true e false e ad un valore booleano si riferiscono le espressioni condizionali; quando necessario viene effettuata una conversione automatica. ciò che non è false è true queste espressioni assumono valore booleano di false: FALSE 0 e 0.0 '' e '0' array() class vuota{} NULL 17

18 Fondamenta: tipi di dati (4) array un array è un tipo complesso, un contenitore di valori cui si può far riferimento per posizione (indice numerico, che parte da 0) o per nome (indice di tipo stringa); una array indicizzato da stringhe è più propriamente detto, in altri linguaggi, un hash, ma PHP non fa questa distinzione. un array viene creato tramite il costrutto array(). per aggiungere elementi ad un array è sufficiente assegnarli: $array[2] = 'foo'; // array $array['bar'] = 'foo'; // hash 18 object PHP supporta la OOP, le classi ne sono l'unità fondamentale. E' possibile creare un numero arbitrario di istanze di una classe, detti oggetti. un oggetto è creato tramite la parola chiave new, come istanza di una classe è una collezione di dati (proprietà) e di funzioni per agire su di essi (metodi)

19 Fondamenta: tipi di dati (5) resource sono all'atto pratico degli interi, ma assumono un significato particolare ed importante. Funzioni come la connessione ad un DB o l'apertura di un file necessitano di identificare la risorsa cui accedono e di passare tale identificativo ad altre funzioni. $fd = fopen('file', 'w'); // tipo: resource, valore: un intero l'intero 1 non è però una risorsa!!! php4 <?php $fd=fopen('/etc/passwd', 'r'); var_dump($fd); $fd=1; var_dump($fd); fclose($fd);?> resource(1) of type (stream) int(1) Warning: fclose(): supplied argument is not a valid stream resource in on line 6 19

20 Fondamenta: tipi di dati (6) NULL la parola chiave, non sensibile alle maiuscoli, NULL indica l'unico valore esistente del tipo di dato NULL; un valore null equivale a nessun valore attenzione, una variabile che sia NULL non è impostata (isset($var)===false), ma è comunque dichiarata NULL è un ottimo candidato per la dichiarazione dei valori iniziali php4 <?php error_reporting(e_all); $b=$a;?> Notice: Undefined variable: a in on line 3 php4 <?php error_reporting(e_all); $a=null; $b=$a;?> php4 20

21 Fondamenta: variabili Le variabili sono identificatori, il cui nome inizia sempre dal simbolo di dollaro ($) una variabile può contenere un valore di qualsiasi tipo di dato vengono create alla loro prima invocazione, la dichiarazione coincide con la prima assegnazione di un valore una variabile non inizializzata ha valore NULL attenzione: una variabile non inizializzata genera, però, un NOTICE php4 <?php error_reporting(e_all); var_dump($a===null);?> Notice: Undefined variable: a in on line 3 bool(true) 21

22 Fondamenta: variabili (2) variabili variabili è possibile utilizzare una variabile per costruire il nome di una altra variabile php4 <?php error_reporting(e_all); $a='mondo'; ${"ciao_$a"} = ': )'; echo $ciao_mondo, "\n";?> : ) riferimenti a variabili è possibile creare un alias per una variabile, due nomi che si riferiscono allo stesso contenuto, tramite l'operatore =& quando si assegna un valore ad una variabile per riferimento non si crea una copia, ma un alias il contenuto della memoria viene liberato quando il numero degli alias è 0 22

23 Fondamenta: variabili (3) scope (campo di validità) è determinato dalla posizione nel codice in cui la variabile viene dichiarata. Esistono quattro scope in PHP: locale, globale, statico e parametro di funzione locale l'unico scope locale in PHP è costituito dalle funzioni una variabile dichiarata in una funzione è visibile solo in tale funzione non esistono altri modi di creare scope locali, come cicli o blocchi globale le variabili dichiarate all'esterno delle funzioni sono accessibili globalmente, da ogni altra parte del codice tranne che nelle funzioni, dove va specificato esplicitamente che ci si riferisce allo scope globale e non a quello locale global $var_globale $GLOBALS['var_globale'] 23

24 Fondamenta: variabili (4) statico una variabile statica è una variabile locale che però mantiene memoria del suo valore attraverso differenti chiamate a funzione una variabile dichiarata in una funzione è visibile solo in tale funzione non esistono altri modi di creare scope locali, come cicli o blocchi parametro di funzione anche i parametri delle funzioni sono particolari variabili locali. Costituiscono una interfaccia tra lo scope locale e quello globale utilizzata per comunicare valori alle funzioni all'atto della loro chiamata 24

25 Fondamenta: garbage collection ogni variabile è costituita di due elementi: il suo nome ($var) il suo valore ( val ) la tabella dei simboli è un array che mappa i nomi delle variabili colle posizioni in memoria dei rispettivi valori PHP ottimizza tempi e memoria tramite due meccanismi reference count assicura che la memoria inutilizzata sia liberata automaticamente copy on write permette il risparmio di memoria e di tempo nella copia di variabili la copia di una variabile in un'altra non richiede ulteriore memoria per il valore la copia minimizza i tempi evitando la reale copia del valore la memoria viene liberata quando non vi sono riferimenti nella tabella dei simboli 25

26 Fondamenta: espressioni e operatori una espressione è una parte di codice PHP i valori letterali e le variabili sono le espressioni più elementari la valutazione di un letterale è se stesso la valutazione di una variabile è il suo valore espressioni complesse si costruiscono a partire da espressioni più semplici un operatore agisce su alcuni elementi (operandi) eseguendo una qualche operazione alcuni operatori modificano i propri operandi il numero di operandi è variabile e dipende dall'operatore assumono particolare importanza alcune regole da rispettare nella aritmetica degli operatori associatività (destra, sinistra, nessuna) precedenza 26

27 Fondamenta: espressioni e operatori (2) operatori aritmetici addizione (+): binario; restituisce la somma degli operandi sottrazione ( ): binario; restituisce la differenza degli operandi moltiplicazione (*): binario; restituisce il prodotto degli operandi divisione (/): binario; restituisce il quoziente degli operandi modulo (%): binario; restituisce il resto della divisione del primo operando per il secondo negazione ( ): unario preposto; restituisce l'operando moltiplicato per -1 asserzione (+): unario preposto; restituisce l'operando moltiplicato per +1 concatenazione di stringhe concatenazione (.): binario; restituisce la stringa risultante dagli operandi, eventualmente viene operato il type juggling 27

28 Fondamenta: espressioni e operatori (3) operatori di incremento auto-incremento (++): unario; preposto, restituisce l'operando incrementato di 1 posposto, restituisce l'operando, successivamente avviene l'incremento auto-decremento ( ): unario; preposto, restituisce l'operando decrementato di 1 posposto, restituisce l'operando, successivamente avviene il decremento possono applicarsi anche a stringhe, come se queste fossero un sistema numerico in base 26 $a= b4zz ; ++$a == b5aa $a= AbC0 ; ++$a == AbC1 $a= le9 ; ++$a == lf0 $a= 2ab9z ; ++$a == 2ac0a 28

29 Fondamenta: espressioni e operatori (4) operatori di confronto, restituiscono un valore booleano uguaglianza (==): restituisce true se gli operandi sono uguali identità (===): restituisce true se gli operandi sono uguali e dello stesso tipo non uguaglianza (!= o <>): restituisce true se gli operandi non sono uguali non identità (!==): restituisce true se gli operandi non sono uguali ne dello stesso tipo maggioranza (>): restituisce true se l'operando di sinistra è maggiore di quello di destra maggioranza o uguaglianza (>=): restituisce true se l'operando di sinistra è maggiore di o uguale a quello di destra minoranza (>): restituisce true se l'operando di sinistra è minore di quello di destra minoranza o uguaglianza (>=): restituisce true se l'operando di sinistra è minore di o uguale a quello di destra 29

30 Fondamenta: espressioni e operatori (5) operatori bit a bit (bitwise) agiscono sulla rappresentazione binaria dei loro operandi, numeri o stringhe; quando operano su stringhe ne trattano i singoli caratteri come numeri in base 26, il risultato può non essere un carattere ASCII NOT (~): trasforma gli 1 in 0 e viceversa AND (&): restituisce 1 se entrambi i bit corrispondenti degli operandi sono 1 OR ( ): restituisce 1 se almeno uno dei bit corrispondenti degli operandi è 1 XOR (^): restituisce 1 se uno solo dei bit corrispondenti degli operandi è 1 Shift a sinistra (<<): sposta verso sinistra i bit nella rappresentazione binaria dell'operando di sinistra di tanti posti quanti indicati dall'operando di destra; ogni posto corrisponde a moltiplicare per 2 Shift a destra (>>): sposta verso destra i bit nella rappresentazione binaria dell'operando di sinistra di tanti posti quanti indicati dall'operando di destra; ogni posto equivale a dividere per 2 30

31 Fondamenta: espressioni e operatori (6) operatori logici gestiscono i loro operandi come valore booleani e restituiscono un valore booleano. Alcuni di essi esistono sia come simboli che come parola chiave inglese, la seconda ha priorità minore NOT (!): restituisce false se l'espressione valutata è true AND (&& o and): restituisce true se entrambe le espressioni costituenti gli operandi sono true OR ( o or): restituisce true se almeno una delle espressioni costituenti gli operandi è true XOR (xor): restituisce true se solo una delle espressioni costituenti gli operandi è true 31

32 Fondamenta: espressioni e operatori (7) operatori di conversione PHP non è un linguaggio fortemente tipizzato, quando si renda necessario forzare l'uso di un particolare tipo si effettua un casting esplicito vi è un operatore di casting per ogni tipo riconosciuto da PHP (int), (integer) (float), (real) (string) (bool), (boolean) (array) (object) non modificano la variabile su cui operano 32

33 Fondamenta: espressioni e operatori (8) operatori di assegnamento assegnano o modificano il valore di una variabile gli operatori (unari) di auto-assegnamento sono un esempio particolare assegnamento (=): assegna il valore dell'operando di sinistra all'operando di destra che deve quindi essere una variabile; restituisce il valore assegnato assegnamento con operazione: effettuano una operazione e poi effettuano l'assegnamento; ogni operatore aritmetico e bitwise binario nonché l'operatore di concatenazione, preposto al simbolo di =, costituisce un operatore di assegnamento con operazione valido: +=, =, *=, /=, %= &=, =, ^=.= 33

34 Fondamenta: espressioni e operatori (9) altri operatori soppressione degli errori impedisce alla istruzione cui è applicato di generare messaggi di errore esecuzione (`...`): detto backtick (`); esegue la stringa contenuta come un comando di shell condizionale (?:): l'unico operatore ternario di PHP. Restituisce il valore del secondo o del terzo operando a seconda che il primo operando sia true o false somma di array (+): opera su due array; accoda il secondo operando al primo, non sovrascrive, ovviamente, eventuali elementi già presenti 34

35 Fondamenta: istruzioni per il controllo di flusso istruzioni condizionali consentono di eseguire parti di codice a seconda del risultato della valutazione di alcune condizioni if, else, elseif : if(c1){i1;} elseif(c2){i2;} else{i3;} consentono di eseguire blocchi di codice al verificarsi di un condizione, in modo esclusivo. È supportata una sintassi alternativa per delimitare i blocchi di codice: if:, endif l'operatore condizionale ternario può essere utilizzato al posto di semplici strutture if-else switch case : switch(esp){case esp:i1; default:i2;} consente di eseguire, in modo non esclusivo, diverse parti di codice in base alla valutazione di una singola condizione. Il costrutto break è utilizzato per uscire dalla modalità fall-through. È supportata una sintassi alternativa: switch:, endswitch 35

36 Fondamenta: istruzioni per il controllo di flusso (2) istruzioni di iterazione consentono di eseguire parti di codice fino al verificarsi di una condizione. È possibile utilizzare le parole chiave break e continue per interrompere il ciclo o l'iterazione corrente. while : while (cond) {istr;} esegue un blocco di codice dopo aver verificato una condizione e finché questa rimane vera. È supportata una sintassi alternativa per delimitare il blocco di codice: while:, endwhile do while : do {istr;} while (cond) esegue un blocco di istruzioni e successivamente valuta la condizione in base alla quale il ciclo continua o meno for : for (istr_1; cond; istr_2) {istr;} esegue una istruzione, valuta una condizione in base alla quale viene eseguito il blocco di istruzioni eseguendo la seconda istruzione alla fine di ogni iterazione. È supportata una sintassi alternativa: for:, endfor 36

37 Fondamenta: istruzioni per il controllo di flusso (3) foreach : foreach ($array as $k => $v) {istr;} esegue un blocco di codice su ciascun elemento di un array. È supportata una sintassi alternativa per delimitare il blocco di codice: foreach:, endforeach do while : do {istr;} while (cond) esegue un blocco di istruzioni e successivamente valuta la condizione in base alla quale il ciclo continua o meno for : for (istr_1; cond; istr_2) {istr;} esegue una istruzione, valuta una condizione in base alla quale viene eseguito il blocco di istruzioni eseguendo la seconda istruzione alla fine di ogni iterazione. È supportata una sintassi alternativa: for:, endfor 37

38 Fondamenta: istruzioni per il controllo di flusso (4) istruzioni di salto break e continue : permettono di interrompere rispettivamente un ciclo (o uno switch) e l'iterazione corrente; accettano un parametro numerico opzionale che indica a quale livello di annidamento ci si riferisca return : ritorna un valore da una funzione o da uno script, restituendo il controllo al programma chiamante exit : interrompe l'esecuzione del programma; accetta un valore opzionale che costituisce lo status di uscita quando numerico, o il messaggio che viene stampato quando sia una stringa declare : declare (direttiva) {istr;} permette di specificare le direttive per l'esecuzione di un blocco di codice. Esiste una sola direttiva, ticks, che permette di specificare la frequenza (in istruzioni) di chiamata di una funzione registrata tramite l'apposita funzione register_tick_function() 38

39 Fondamenta: inclusione di codice È possibile incorporare altri script all'interno del codice tramite due costrutti include e include_once : permettono di inserire un altro script nel punto in cui sono invocati. Se lo script non è accessibile viene generato un warning e l'esecuzione del programma prosegue require e require_once : permettono di inserire un altro script nel punto in cui sono invocati. Se lo script non è accessibile viene generato un errore fatale e l'esecuzione del programma termina se è attiva la direttiva allow_url_fopen è possibile utilizzare delle URL (http:// e ftp://) per includere file remoti 39

C o r s o L i b e r o d i. 2005 Emiliano Gabrielli GrUSP.it

C o r s o L i b e r o d i. 2005 Emiliano Gabrielli <AlberT@SuperAlberT.it> GrUSP.it C o r s o L i b e r o d i 2005 Emiliano Gabrielli GrUSP.it Licenza Corso Libero di PHP Copyright (c) 2005 Emiliano Gabrielli Quest'opera è stata rilasciata sotto la licenza Creative

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

PHP 1. Scripting lato server. Come funziona uno script. Che cosa è PHP 1. Esempio. Elementi del linguaggio. Più pseudo-tag nello stesso documento

PHP 1. Scripting lato server. Come funziona uno script. Che cosa è PHP 1. Esempio. Elementi del linguaggio. Più pseudo-tag nello stesso documento Scripting lato server Elementi del linguaggio PHP 1 L'URL che il browser richiede identifica una risorsa presente in un server http costituita da Codice HTML Pezzi di codice scritti in un linguaggio di

Dettagli

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI PHP PHP - Storia Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI Al progetto si unirono Zeev Suraski e Andi Gutmans che ne scrissero l'interprete Zend Oggi è alla versione 5 e può essere

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Conoscere il concetto di espressione 2 1 Introduzione

Dettagli

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Programmazione e gestione di sistemi telematici Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini Php: come nasce Il World Wide Web è stato

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Introduzione a PHP: Concetti Fondamentali

Introduzione a PHP: Concetti Fondamentali Introduzione a PHP: Concetti Fondamentali Davide Rocker Anastasia 20 dicembre 2005 Sommario Dopo alcuni anni di riflessione, riprende il mio percorso personale sul PHP. Questo breve documento parlerà dei

Dettagli

Introduzione a PHP Gestione dei Dati e della Conoscenza

Introduzione a PHP Gestione dei Dati e della Conoscenza Introduzione a PHP Gestione dei Dati e della Conoscenza Diego De Cao, Roberto Basili {decao,basili}@info.uniroma2.it a.a. 2008/2009 PHP Overview PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor")

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag