Incuriositi dal PHP by ADaM "unno" (unno@softhome.net http://digilander.iol.it/unno2/ ) Il PHP (acronimo di PHP Hypertext Preprocessor) è un linguaggio di scripting lato server che si può includere all'interno dell'html per trasformare le vostre pagine statiche in una vera applicazione web che genera contenuti dinamici on-demand. Per quanto bello possa essere un sito, perchè qualcuno dovrebbe ritornare a visitarlo se non ci sono servizi che fanno interagire l'utente come le votazioni (polls), i forum, le chat, notizie aggiornate (da grabbare magari da qualche fonte famosa), un carrello della spesa (se il sito ha scopi commerciali), mandare agli amici cartoline elettroniche personalizzate e ogni altra cosa possa suggerirvi la fantasia. PHP, a differenza di altri linguaggi di scripting, è nato espressamente per il web ed ora che è alla versione 4 ha raggiunto una maturità eccellente tanto da rivaleggiare con i vari ASP (che è in realtà una tecnologia), Perl, Python, etc. Il progetto è Open Source (www.php.net) e molto ben supportato. Gli aggiornamenti sono frequenti e i contributi esterni fioccano; tra questi ricordiamo: le librerie GD per creare al volo immagini gif, jpeg, png; le librerie ming e le funzioni Shockwave Flash per generare al volo i file swf di Macromedia Flash; librerie IMAP; Aspell che è uno spell checker open source; librerie per generare PDF. Inoltre il PHP ha funzioni o moduli add-on per una miriade di altre cose come decine di database, XML, SNMP, librerie per crittare (mcrypt) e usare algoritmi hash (mhash). Comunque per i particolari sulle funzioni c'è l'ottima manuale e una miriade di siti che segnalerò alla fine. Le funzioni sono numerosissime e trattano: manipolazione array, cookies, le date, filesystem, connessioni ftp e http, funzioni matematiche, espressioni regoleri, gestione delle sessioni, gestione stringhe, gestioni variabili, etc, etc. Anche gli appassionati di programmazione ad oggetti avranno pane per i loro denti. PHP gira su molte piattaforme e si trova a suo agio a fianco del famoso server Apache e del versatile server sql MySQL, ma non disdegna altri server http come i Microsoft o altri database, dai costosi della Oracle e della MS, ai testatissimi PostgreSQL, Informix, Sybase, etc, etc. Per quanto riguarda l'installazione di tutto il necessario potete optare per soluzioni all-in-one molto pratiche (come www.nusphere.com che offre apache+php+MySQL+Perl sia per linux che per win oppure solo per win potete guardare su www.php4win.de) oppure smanettare con i sorgenti da scaricare e compilare (ci sono degli ottimi tutorial se non dovessero bastare i Readme inseriti in ogni pacchetto). E se all'inizio vi sentite un pò spaesati, avrete a disposizione ottimi siti ad ogni livello che vi indirizzeranno verso le giuste soluzioni, newsgroup internazionali (alt.php, alt.php.sql, alt.comp.lang.php) e uno italiano appena aperto (it.comp.www.php), una miriade di mailing list tra cui quella italiana di ziobudda.net, davvero ben frequentata e gestita e, infine, libri in inglese (tra cui: in inglese l'ottimo Professional PHP Programming dell'editore Wrox; in italiano sono previste delle uscite nel 2001 per Tecniche Nuove e Apogeo). E quando sarete più smaliziati potrete dare uno sguardo (o uno mano) allo sviluppo dei numerosi e ben supportati progetti open source per mettere su i servizi più richiesti come contatori, forum, shopping cart o altro. Per non reinventare ogni volta la ruota e per studiare sono a disposizione interi siti di script suddivisi per argomento. Ovvio che oltre alle prove off-line sulla vostra macchina di casa sarete tentati di mettere in pratica gli script creati: nessun problema, esistono servizi gratuiti che danno spazio web con supporto PHP e database. Per chi ne deve fare uso commerciale, i server (anche italiani) che gestiscono php e database sono numerosi e dai prezzi competitivi. Se proprio non resistete e volete vedere un esempio di quali siano le potenzialità del PHP potete dare uno sguardo allo script in allegato che descriverò brevemente. Questo script realizza una ricerca su un server whois per vedere se il dominio richiesto dall'utente è libero oppure se è stato già registrato. L'utente immette un nome di dominio senza www in un form e preme il bottone di submit. A questo punto entra in gioco lo script PHP che processa le informazioni, fa la richiesta al server whois attinente quel dominio e fornisce la risposta all'utente. Nella prima fase lo script tenta di capire qual'è il dominio di primo livello in modo da individuare il server whois esatto. Se la stringa di ricerca inserita dall'utente è non vuota e il dominio di primo livello è tra i quasi 50 che questo script può riconoscere, allora parte la seconda fase di interrogazione. Apriamo un socket sul server whois scelto sulla porta 43 e gli sottoponiamo la richiesta. Analizzando la risposta (cerchiamo le stringhe caratteristiche No entries found o NO MATCH) deduciamo se il dominio richiesto è libero oppure no. Se dovesse essere stato già registrato diamo all'utente la possibilità di conoscere le altre notizie circa la proprietà del dominio. Lo script appena descritto era originariamente opera di Max Galvin http://www.zend.com/codex.php?id=170&single=1 . Poi Enrico Valsecchi mi propose e realizzò una ulteriore modifica in modo che la ricerca riportasse semplicemente la disponibilità o meno del dominio in questione. Lo script, a dire il vero, aveva bisogno di qualche perfezionamento e alla fine è nata la mia ultima versione di questo script. Alcuni miglioramenti possono essere introdotti come aggiungere altri domini di primo livello, migliorare l'algoritmo in generale, inserire il form di input nello stesso file php, etc. Spero di avervi incuriosito con queste parole e di avervi indotto a spippolare con questo divertente e facile linguaggio. Link utili: www.php.net www.PHPcenter.it www.phpitalia.com/ www.devshed.com/Server_Side/PHP/ php.resourceindex.com/ px.sklar.com/ phpbuilder.px.sklar.com/ www.htmlwizard.net/phpTidbits/ www.phpioneers.com/ phpclasses.upperdesign.com/browse.html www.phpbuilder.com/ www.php4win.de/ www.zend.com www.phpworld.com/ www.weberdev.com/ www.phpnewbie.net/ www.weberdev.com/php-examples.html phplib.netuse.de/ www.alt-php-faq.org/ phpwizard.net/ www.tryc.on.ca/archives/php3/ Spazio gratuito con supporto php-database: www.portland.co.uk www.nexen.net http://www.mycgiserver.com/ http://www.freesurf.fr/ http://www.free.fr/ http://www.forez.com http://www.f2s.com/