PHP/Introduzione/Come funziona
Wikibooks, manuali e libri di testo liberi.
- Introduzione PHP/Introduzione
- Storia PHP/Introduzione/Storia
- Come funziona PHP/Introduzione/Come funziona
- Installazione e configurazione PHP/Installazione e configurazione
- Programmazione PHP/Programmazione
- Una pagina PHP PHP/Programmazione/Una pagina PHP
- echo PHP/Programmazione/echo
- Commenti PHP/Programmazione/Commenti
- Variabili PHP/Programmazione/Variabili
- Operatori PHP/Programmazione/Operatori
- Array PHP/Programmazione/Array
- Condizioni PHP/Programmazione/Condizioni
- Cicli PHP/Programmazione/Cicli
- Funzioni di base PHP/Programmazione/Funzioni di base
- Funzioni personalizzate PHP/Programmazione/Funzioni personalizzate
- Variabili globali PHP/Programmazione/Variabili globali
- $GLOBALS PHP/Programmazione/Variabili globali/$GLOBALS
- $_GET PHP/Programmazione/Variabili globali/$_GET
- $_POST PHP/Programmazione/Variabili globali/$_POST
- $_SESSION PHP/Programmazione/Variabili globali/$_SESSION
- $_COOKIE PHP/Programmazione/Variabili globali/$_COOKIE
- $_SERVER PHP/Programmazione/Variabili globali/$_SERVER
- File PHP/Programmazione/File
- Immagini PHP/Programmazione/Immagini
- Espressioni regolari PHP/Programmazione/Regexp
- Programmazione orientata agli oggetti PHP/Programmazione/OOP
- Programmazione avanzata con le classi PEAR PHP/PEAR
- PHP e i database PHP/Database
- Funzioni PHP per l'accesso ai database
- Database e object oriented PHP/Dboop
- PHP Design Pattern PHP/PHP Design Pattern
- Smarty PHP/Smarty
- Sicurezza delle applicazioni web PHP/Sicurezza
- PHP CLI: Command Line Interpreter PHP/Cli
- PHP GTK2: applicazioni desktop in PHP PHP/Gtk
- Wikibook credits
Fin dalla sua prima uscita, PHP è stato un linguaggio fortemente orientato al web. Tuttavia, i nuovi e più recenti miglioramenti lo rendono adatto ai più svariati scopi. Le tre principali aree di utilizzo di PHP sono:
- Server side scripting - scripting lato server per il web
- Shell scripting - scripting a riga di comando
- Applicazioni desktop
[modifica] Server side scripting
Questo ambito di utilizzo è il più tradizionale ed il più diffuso. PHP consente di generare in maniera dinamica le pagine web. Per utilizzare PHP in questo ambito occorrono:
- un server web
- l'interprete PHP
- un browser web
Durante il caricamento di una pagina Web, il browser del client (cioè dell'utente) invia una richiesta HTTP al web server, il quale si incarica di restituirgli una file, normalmente "pagina" contenente codice HTML, oppure anche ad esempio un'immagine.
Nel caso sia una pagina scritta in HTML (solitamente indicata dall'estensione .htm o .html"), una volta ricevuta il browser è in grado di disegnarne il contenuto sullo schermo interpretando il linguaggio di markup.
Le pagine nelle quali è presente codice PHP, che sono memorizzate sul server, non sono direttamente lette ed interpretate dal browser ma vengono interpretate da un modulo aggiuntivo del web server che è appunto il modulo PHP.
Normalmente le pagine contenente codice PHP devono avere una estensione di tipo ".php" ma, configurando opportunamente il server, è possibile utilizzare anche estensione ".html" o altro.
Tutte le volte che al web server viene fatta la richiesta di una pagina, questa viene analizzata da esso. Se all'interno della pagina viene riconosciuta la presenza di codice PHP (delimitato da tags — marcatori — appositi) questa viene passata al modulo PHP che si preoccuperà di restituirla (in un certo senso di riscriverla) nel formato HTML, direttamente interpretabile dal browser richiedente.
Il susseguirsi logico delle varie fasi è il seguente:
- l'utente richiama la pagina (inserendo l'URL o cliccando un link)
- il browser inoltra la richiesta al web server
- il web server cerca la pagina (il file) richiesto
- se la pagina contiene codice PHP viene passata al modulo PHP, altrimenti si va al punto 6
- il modulo PHP interpreta la pagina PHP e restituisce la corrispondente pagina HTML
- la pagina "HTML" viene spedita al browser richiedente
- il browser, una volta ricevuta la pagina, la legge e la disegna a monitor
Una pagina web è da considerare composta da due componenti fondamentali: la struttura o layout e il contenuto. Per layout intendiamo tutto ciò che descrive come la pagina deve essere disegnata, tabelle, colori, fonts, frames... in generale tutto ciò che può essere definito mediante il linguaggio HTML. Per contenuto consideriamo, per semplicità, tutto ciò che non è struttura ma informazione che la pagina ci offre. In un sito web di solito la struttura resta all'incirca la stessa per tutte le pagine. Quel che cambia è il contenuto.
Per facilitare il lavoro ai webmaster la soluzione sarebbe quella di poter separare "fisicamente" il contenuto delle pagine dalla loro struttura. Il PHP viene in aiuto soprattutto in tali situazioni: generalmente un pagina viene costruita memorizzando in un file la struttura (della generica pagina) e in un database il contenuto. In questo modo quello che è il compito dell'interprete PHP è quello di assemblare la pagina inserendo il contenuto caricato dal database nella struttura.
Il funzionamento a questo punto differisce leggermente da quello sopra riportato in quanto il punto 5 si modifica in questo modo:
- il modulo PHP interpreta la pagina PHP, richiede al database il contenuto da inserire, genera e restituisce la corrispondente pagina HTML.
In realtà, esistono anche altre possibilità: si può modificare il mime type con l'istruzione
<?php Header("Content-type: Linguaggio contenuto"); ?>
oppure tramite particolari estensioni di PHP come le librerie GD è possibile creare delle immagini e restituire quindi non una pagina HTML bensì un'immagine vera e propria.
[modifica] Shell scripting
Per shell scripting si intende la scrittura ed esecuzione di script a riga di comando (in Windows, è il programma cmd.exe; in linux è chiamato anche Terminale o Console). Quando PHP lavora in questo ambito, non sono necessari né web server, né browser: basta lanciare dalla riga di comando l'interprete PHP.
Questo tipo di utilizzo è ideale, per esempio, per gli scripts che devono essere eseguiti periodicamente in maniera trasparente (con cron sui sistemi *nix oppure con Task Scheduler su Windows) oppure per quegli script che devono processare dei testi in automatico, senza generare particolari output.
| Per approfondire, vedi la pagina PHP/Cli. |
[modifica] Applicazioni desktop
Grazie all'estensione php-gtk2, reperibile sul sito ufficiale [1], adesso è possibile utilizzare PHP anche per la generazione di applicazioni desktop client side.
Anche se questo ambito di utilizzo non è il più diffuso ed è ancora abbastanza "instabile", può essere utile e divertente sviluppare applicazioni desktop con PHP e le librerie GTK, in quanto si tratta di strumenti di rapido utilizzo che generano programmi portabili fra più sistemi operativi.
| Per approfondire, vedi la pagina PHP/Gtk. |