Il linguaggio PHP
Cos’è PHP PHP è un acronimo ricorsivo che sta per “PHP: Hypertext Preprocessor”. E’ un linguaggio di scripting, general-purpose ed Open Source molto utilizzato. E’ particolarmente indicato per lo sviluppo Web e può essere integrato nell'HTML. La sua sintassi è basata su quella di C, Java e Perl, ed è molto semplice da imparare. L'obiettivo principale del linguaggio è quello di permettere agli sviluppatori web di scrivere velocemente pagine web dinamiche, ma con PHP si può fare molto altro....
Un esempio banale <html> <head> <title>Esempio</title> </head> <body> <?php echo "Ciao, sono uno script PHP!"; ?> </body> </html>
Commenti all’esempio Come si può notare dal precedente esempio lo script è differente da uno script scritto in altri linguaggi come Perl o C. Invece di scrivere,infatti, un programma con parecchi comandi per produrre HTML, si scrive in HTML con qualche comando immerso per ottenere dei risultati (in questo semplice esempio, la visualizzazione di una frase). Il codice PHP è delimitato da speciali start ed end tag che ne indicano l'inizio e la fine e che consentono di passare dal “modo” HTML al “modo” PHP.
Caratteristiche del PHP Le principali potenzialità del PHP sono: La gestione e l’elaborazione agevolata di stringhe ed array; Il supporto alla programmazione ad oggetti; L’uso di moduli standard(forniti con il core del PHP) o opzionali; L’interazione con molti DBMS (MySQL,Oracle,PostgreSQL,ecc.); La creazione di file PDF, perfino filmati Flash al volo (utilizzando libswf e Ming) e la “parsificazione” di documenti XML. Nel campo dell'E-commerce, si avranno a disposizione funzioni utili per i programmi di pagamento online, come: Cybercash, CyberMUT, Verysign Payflow Pro e MCVE.
Campi di applicazione Esistono tre campi di applicazione in cui vengono utilizzati gli script PHP: Lo scripting server-side. Questo è il campo più tradizionale ed il maggiore obiettivo del PHP. Per fare questo lavoro occorrono tre cose. Il parser PHP (CGI o server module), un webserver ed un browser web. Lo scripting di righe di comando. Si può creare uno script PHP da usare senza alcun server o browser. Per usarlo in questo modo, l'unica cosa necessaria è un parser PHP. Questo tipo di utilizzo è ideale per gli scripts eseguiti con cron (sui sistemi Unix o Linux) oppure il Task Scheduler (su Windows). Scrittura di applicazioni desktop. Probabilmente PHP non è il linguaggio più adatto per scrivere applicazioni desktop, con interfaccia grafica, ma, se lo si conosce molto bene, e se se ne vogliono usare delle caratteristiche avanzate in applicazioni client-side, si può anche adoperare PHP-GTK per scrivere questo tipo di programmi. PHP-GTK è un'estensione di PHP reperibile presso il sito http://gtk.php.net/
Preparazione dell’ambiente Per utilizzare PHP come linguaggio di scripting lato server occorre effettuare le seguenti operazioni: Installare il server Web HTTP che si preferisce (ad esempio Apache o MS IIS ); Installare l’ambiente per l’elaborazione delle pagine PHP (l’installer per Windows è disponibile presso il sito http://www.php.net/downloads.php) Il wizard di solito riesce a impostare tutti i parametri necessari(nel file php.ini) al funzionamento dell’ambiente e a configurare alcuni web server ad usare PHP. Per Apache invecela configurazione deve essere effettuata manualmente.
Installazione di Apache L’installazione è abbastanza semplice basta lanciare l‘installer per Windows, scaricato da www.Apache.org. A questo punto, dopo aver installato anche l’ambiente PHP, occorre editare manualmente il file di Apache httpd.conf. Ci sono due modi per far cooperare PHP e Apache: tramite l’uso di un CGI binario ed in tal caso si avrà: ScriptAlias /php/ "c:/php/" AddType application/x-httpd-php .php Action application/x-httpd-php "/php/php-cgi.exe" Oppure tramite l’uso di una DLL LoadModule php5_module "c:/php/php5apache2.dll" # configure the path to php.ini PHPIniDir "C:/php"
Installazione delle estensioni di PHP Una volta completata l’installazione di PHP e di un server Web è possibile provvedere all’installazione di estensioni del PHP per aggiungere nuove funzionalità. Il nome delle DLL per l’estensione di PHP ha come prefisso php_. Molte di queste sono già contenute nel package di installazione del PHP, altre occorre reperirle altrove(PECL). Per abilitare l’utilizzo di alcune estensioni occorre editare il file php.ini: // change the following line from ... ;extension=php_bz2.dll // ... to extension=php_bz2.dll
La nostra prima pagina PHP Questo programma è molto semplice e sicuramente non era necessario fare ricorso a PHP per creare una pagina come questa. Tutto ciò che essa fa è di visualizzare: HelloWorld! usando la funzione echo() di PHP: <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World</p>'; ?> </body> </html>
Editor e strumenti Esistono molti editor di testo e Integrated Development Environment (IDE) che possono essere usati per creare, modificare e gestire file PHP. Una lista parziale di questi strumenti è disponibile presso il sito: http://www. thelinuxconsultancy.co.uk/phpeditors.php. Word processor quali StarOffice Writer, Microsoft Word e Abiword non sono una buona scelta per modificare i file PHP. Se si intende usare qualcuno di essi occorre salvare i file PHP con l’opzione “SOLO TESTO” altrimenti non sarà possibile eseguire gli script salvati. Attenzione all’uso del Blocco Note di Windows che tende a salvare i file aggiungendo automaticamente l’estensione “.txt”
Sintassi di base Nello scrivere uno script PHP, come abbiamo visto nell’esempio precedente occorre racchiudere il codice PHP tra i tag: <?php … ?>. Altri delimitatori del codice sono i seguenti tag: <? …?> (short tags) e <%...%> (ASP-like tags) il cui uso deve però essere abilitato nel file php.ini; <script language=“php”> ….</script> che rappresentano i delimitatori di default assieme a <?php … ?>. Su server, di cui non si ha il controllo diretto, conviene utilizzare script con i tag di default.
Uso dei tag Le seguenti dichiarazioni sono del tutto equivalenti: <? echo (“Io sono uno script PHP\n”); ?> <?php echo (“Io sono uno script PHP\n”); ?> <script language=“php”> echo (“Io sono uno script PHP\n”); </script> <% echo (“Io sono uno script PHP\n”); %>
Commenti In PHP i commenti nel codice si possono esprimere in tre diversi modi: /* ….*/ come nel linguaggio C; // come nel linguaggio C++; # come nel linguaggio Perl o nello scripting di shell di Unix.
Le variabili Le variabili in PHP sono rappresentate dal simbolo dollaro ($) seguito dal nome della variabile. I nomi sono case-sensitive (ad esempio $var <> da $Var). I nomi delle variabili devono iniziare con una lettera o un underscore ( _ ) seguiti da qualsiasi numero di lettere numeri o underscore. Ad esempio: <?php $4site = 'not yet'; // non valido; inizia con un numero $_4site = 'not yet'; // valido; inizia con un underscore $tдyte = 'mansikka'; // valido; 'д' è (Extended) ASCII 228. ?>
Scope delle variabili Lo scope delle variabili è il contesto all’interno del quale esse sono definite. Tutte le variabili PHP hanno un singolo scope che può comprendere lei file inclusi o richiesti. Ad esempio: <?php $a = 1; include 'b.inc'; ?> In tal caso la variabile $a sarà disponibile anche all’interno dello script “b.inc”. Tuttavia all’interno di una funzione definita dall’utente esiste un cosiddetto scope locale.
Scope locale <?php $a = 1; /* global scope */ function Test() { echo $a; /* reference to local scope variable */ } Test(); ?> Lo script sopra non produce alcun output in quanto all’interno della funzione “Test” la variabile $a non è stata inizializzata. Per ovviare a ciò bisognerebbe utilizzare la parola chiave global.
Parola chiave global <?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?> In questo caso il risultato dell’output è 3, in quanto all’interno della funzione si fa riferimento alle variabili globali. Un’altra possibilità era quella di ustilizzare la variabile predefinita $GLOBALS detta anche variabile superglobal.
Variabili superglobal Queste variabili sono degli array di variabili e sono speciali in quanto sono automaticamente globali, cioè automaticamente disponibili in ogni scope. Per questa ragione le suddette variabili vengono dette anche autoglobali o superglobali. Esistono diverse variabili superglobali ognuna con uno funzione diversa: $GLOBALS contiene un riferimento a tutte le variabili che sono disponibili nello scope globale dello script. $_SERVER si riferisce ad un insieme di variabili relative al server web o comunque direttamente legate all’ambiente di esecuzione dello script corrente. e diversi altri ancora come($_GET, $_POST,$_ENV, ecc.)
Variabili variabili Producono, cioè lo stesso output!! Talvolta può tornare utile poter definire nomi di variabili, variabili. Ciò non consiste altro che nel poter impostare ed utilizzare un nome di una variabile dinamicamente. <?php $a = 'hello‘; $$a = 'world'; ?> In questo modo sono state definite due variabili $a che contiene “hello” come valore e la variabile $hello che contiene “world”. Per cui i due spezzoni di codice sono equivalenti: <?php echo "$a ${$a}"; <?php echo "$a $hello"; Producono, cioè lo stesso output!!