phpInfo.netLes ArchivesLes éléPHPants

  
  Accueil
  Trucs & Astuces
  Scripts
  Regex
  Annuaire
  Articles

.
      
 Articles   Introduction à PHP  Par J-François Valeille, Christophe Lauer   Avril 2000  

 »  Origines de PHP
 »  Qu'est ce que PHP ?
 »  A qui s'adresse PHP ?
 »  Les atouts de PHP
 »  Différences avec les autres langages
 »  Fonctionnement de PHP avec un serveur Web
 »  Ce dont vous avez besoin pour commencer
 »  La structure des Programmes


Origines de PHP

De simples idées aboutissent à de magifiques créations. PHP est né avec le site de Rasmus Lerdof en 1994: une page personnelle, avec son CV qui permettait à l'origine de conserver une trace des utilisateurs. A l'époque PHP supportait déjà des requêtes SQL et, comme cela arrive souvent sur le Web, des internautes ont rapidement voulu leur propre copie du programme. Rasmus a donc décidé de mettre en ligne la version 1.0 de PHP (Personal Home Page). A la surprise de son auteur, PHP est devenu rapidement très populaire. Conséquence : une multitude de suggestions ont atterri dans sa boîte aux lettres. Certes, PHP 1.0 pouvait contrôler la saisie des utilisateurs et remplacer certaines commandes HTML. Mais les utilisateurs commençaient à se demander si PHP n'était pas capable de mieux faire : boucles, structures conditionnelles, etc. A l'instar de tous les autres langages de programmation modernes, la seconde étape logique de l'évolution de PHP consistait effectivement à adopter des fonctionnalités plus puissantes. Rasmus étudia donc la structure des autres langages, il se documenta à propos de YACC et de Bison GNU pour mettre au point la version 2.0.

La version 2.0 permet au développeur d'intégrer des instructions de programmation puissantes directement dans du code HTML. Concrètement, un script PHP peut analyser les données soumises par un formulaire HTML, communiquer avec des bases de données et effectuer des calculs complexes à la volée. Et l'exécution de tels scripts est très rapide, car le code source du langage est directement compilé dans le serveur Web Apache. Ainsi, les instructions PHP sont exécutées à l'intérieur même du serveur, sans aucune ressource supplémentaire, contrairement aux CGI (Common Gateway Interface).

A partir de cette version 2 (appelé PHP/FI), PHP a représenté un outil crédible pour le développement Web, et plusieurs sites commerciaux n'ont pas hésité à l'adopter. En 1996, Clear INK mit en ligne SuperCuts (www.supercuts.com) et utilisa PHP pour créer un système de navigation personnalisé. En janvier 1999, plus de 100 000 sites avaient adopté le langage PHP.

Une communauté de développeurs s'est créée autour du langage. De nouvelles fonctions ont ainsi pu voir le jour et de nombreux bugs ont été rapidement résolus. Zeev Suraski et Andi Gutmans ont apporté des fonctions essentielles en écrivant un nouveau moteur d'analyse, celui de la version 2.0 générant de nombreuses erreurs. C'est pourquoi Rasmus décida de créer la version 3.0 de PHP et demanda à plusieurs programmeurs de le rejoindre dans ce travail. Outre Zeev et Andi, citons également Stig Bakken, Shane Caraveo et Jim Winstead.

Après six mois de développement, la version 3.0 de PHP sortit le 6 juin 1998. PHP3 est la troisième version de l'interprêteur de ce langage.

La prochaine mouture est déjà bien avancée : le moteur de PHP v4 sera Zend (cf. le site officiel de PHP4 et celui de Zend). La version finale doit sortir en Avril 2000.

Contrairement à ce que certains disent, l'acronyme PHP ne signifie pas "People Hate Perl", mais bizarrement "Personal Home Pages". Ce nom est hérité de la première version de PHP. Aujourd'hui, par concensus, "PHP : PHP Hypertext PreProcessor".

Qu'est ce que PHP ?

PHP est un langage de script qui s'inclut dans le langage HTML et est traité par le serveur. La syntaxe du langage PHP provient du C, de Java et du Perl, avec un petit nombre de fonctions inédites par rapport à ces langages. Le but du langage PHP est de permettre aux développeurs de site web d'écrire rapidement des pages web dynamiques. PHP permet de construire dynamiquement des pages HTML contenant les résultats de calculs ou de requêtes SQL adressées à un système de gestion de bases de données (SGBD). Il demande pas de connaissances importantes de la machine sur laquelle on travaille, et permet d'exporter les scripts vers n'importe quel OS pour fonctionner sur (Unix, Mac, Windows).

Grâce à des nombreuses extensions, PHP3 peut générer des fichiers PDF, s'interfacer avec des serveurs de messagerie, des serveurs LDAP ou encore générer des images et graphiques GIF à la volée, pour ne citer que quelques unes des fonctionnalités les plus impressionnantes.

PHP3 peut s'interfacer à la quasi totalité des SGBD du marché, qu'ils soient commerciaux ou qu'ils viennent du monde du Free Software.

PHP3 est un langage comparable à ASP de Microsoft (la comparaison s'arrête là : PHP3 comporte beaucoup plus de fonctions qu'ASP, supporte pratiquement tous les standards du Web, et est extensible). Techniquement , PHP correspond à un langage de script concurrent de Perl, de Javascript ou de VBScript utilisé par le moteur Active Server Pages de Microsoft. Son objectif consiste à produire des pages HTML côté serveur moyennant des traitements permettant d'enrichir ces pages par l'insertion des données en provenance de Bases de données. Il permet aussi de créer des pages HTML de toutes pièces, donc des feuilles styles prête à l'emploi.

Et combien coûte une telle merveille ? PHP3 est distribué librement et gratuitement sous la licence GNU GPL. Il peut être téléchargé depuis le site mirroir français de l'Université de Michel de Montaigne Bordeaux III à fr.php.net

A qui s'adresse PHP ?

Reprenant une syntaxe claire et familière puisque très proche de celle du langage C, PHP3 est un langage dont la prise en main est généralement rapide (PHP3 provoque moins de phénomènes de rejet que Perl, et nécessite pour son apprentissage beaucoup moins de temps...).

C'est donc un langage qui conviendra autant au débutant désireux de se familiariser "sans douleur" avec les techniques du web dynamique, qu'au professionnel cherchant une solution simple mais toutefois puissante et fiable pour des sites de taille moyenne.

Les atouts de PHP

Les sceptiques se posent tous la même question : pourquoi devrais-je apprendre le langage PHP ? Le temps des sites Web statiques développés avec des pages HTML et quelques scripts CGI sera bientôt révolu. Désormais, les catalogues de produits des entreprises doivent pouvoir être convertis en moins de 24 heures pour être consultables en ligne, à travers l'interface d'une boutique électronique par exemple. En fait, le problème, pour le créateur, consiste à choisir une technologie parmi la centaine disponible.

PHP est librement modifiable et il a été conçu pour intégrer de multiples extensions. Cela n'est pas étonnant, car il est programmé en C. De plus, PHP propose une API (Application Programmaing Interface) très stable. Les développeurs expérimentés pourront ainsi aisément ajouter de nouvelles fonctions.

PHP est uniquement dédié au développement de pages Web dynamiques, contrairement à des langages généraux (Perl, C et Java, entre autres), qui représentent d'excellents outils de programmation, mais restent très difficiles à manier pour le Web. Les applications PHP sont rapides à mettre en place et faciles à créer, car leur code est directement intégré dans les pages HTML.

Le support technique est également gratuit. Envoyez vos questions à une mailing list consacrée à PHP et vous recevrez en quelques heures la réponse à votre problème. Un système d'archives, disponible sur le site de PHP permet d'obtenir une solution clairement commentée à la majorité des questions.

PHP est un langage très populaire. Plusieurs fournisseurs d'accès ou hébergeurs de sites l'ont d'ores et déjà adopté, autorisant ainsi les utilisateurs à développer leurs propres applications Web sans exposer leur serveur aux risques des CGI. De plus de tels sites peuvent migrer d'une machine à l'autre sans aucune difficulté et on peut leur ajouter de nouvelles fonctionnalités en toute simplicité.

Plusieurs techniques utilisées dans d'autres langages peuvent parfaitement s'appliquer à PHP. De fait le C et le Perl ont fortement inspiré PHP ainsi si vous avez déjà une expérience d'un de ces deux langages, l'apprentissage de PHP ne présentera aucune difficulté. A l'inverse, après avoir appris les fondements de ce nouveau langage vous pourrez appliquer de nombreuses techniques à plusieurs autres langages pas seulement le C et le Perl mais aussi Java et d'autres outils structurés comme le C.

Différences avec les autres langages

Différence avec javascript
A ne pas confondre avec Java, Javascript est lui aussi un langage de script intégré dans les pages HTML mis au point par Netscape puis repris par Microsoft sous le nom de JScript pour son Serveur IIS. Tous les deux se conforment à la norme ECMA Script. Si Javascript peut fonctionner côté serveur, il est utilisé dans 99% des cas côté client. Il est donc intéprété par le client Web alors que PHP est directement interprété par le serveur Web (s'il est inclus comme étant un module du serveur web). Le client web reçoit donc directement du HTML et ne voit jamais apparaître le code PHP. Leur utilisation est différente : Javascript est très bien adapté à l'aspect présentation et manipulation du client Web (Menu déroulant, Bannière, ... ).

PHP est lui adapté à la création de page HTML dynamique et rapide, dans le sens que 2 appels consécutifs à un URL peuvent donner deux pages HTML différentes. Mais chacune de ces pages est statique. On peut dire qu'au niveau du serveur la page est dynamique alors qu'elle apparait comme étant statique au niveau du client Web. Javascript permet lui de générer une page dynamique pour le client Web, c'est une des principales différences entre ces deux outils de développement. La mise au point des scripts Javascript est délicate du fait de la diversité des navigateurs (les premières versions ne supportaient pas Javascript, l'utilisateur peut le dévalider).

Différence avec PERL
Perl est le langage le plus populaire et le standard pour les solutions CGI. Il a été adopté pour supporter des technologies Web complexes comme les moteurs de recherche (EWS d'Excite, ...) et pour créer des applications qui prennent tout en charge : interface utilisateur, traitement, ... Contrairement à PHP, il ne peut pas s'intégrer directement dans une page web. D'où une mise au point plus délicate et plus complexe. La force de PHP réside dans le fait qu'il supportait dès son origine des requêtes SQL. Des millions d'informations, de catalogues, .. sont stockés dans les bases de données des entreprises. Vu le développement rapide d'Internet, on peut dire qu'Internet est maintenant mûre pour mettre ses informations en ligne soit en INTRANET ou en EXTRANET en s'appuyant sur les langages de script comme PHP ou ASP et sur les langages à balise comme HTML et XML.

Différence avec ASP
Microsoft, propose les ASP (Active Server Pages) avec son serveur Web IIS (Internet Information Server). Cette interface ASP est maintenant supportée par le serveur Web Apache, dont le principal intérêt réside dans l'utilisation des fonctionnalités objets du langage Perl, ce qui facilite le transfert des informations d'un script à l'autre. PHP inclut nativement un nombre impressionnnat de fonctions dédiées au monde de l'Internet. Envoyer un message électronique, générer ou manipuler un fichier .gif à la volée, accéder aux bases de données ou lancer un chargement de fichier, tout cela ne nécessite que quelques lignes de code. PHP comporte beaucoup plus de fonctions qu'ASP, supporte pratiquement tous les standards du Web, est extensible et permet de créer des pages HTML de toutes pièces.

Et pour conclure
Le passage des pages statiques, en langage HTML, aux pages dynamiques, en PHP, ASP, Perl ou tout autre langage, demande un minimun d'apprentissage. Mais, c'est un passage obligé si l'on veut faire un site de qualité, évolutif et riche sans passer son temps à modifier sans cesse des pages. PHP et ASP sont les deux langages de scripts qui devraient avoir une très forte progression du fait de leur simplicité, de leur intégration dans les pages HTML et du fait qu'ils provoquent moins de phénomènes de rejet que Perl (plus réservé aux programmeurs expérimentés). Le temps consacré à l'apprentissage de ces langages sera très largement compensé par les nouvelles possibilités offertes et par l'automatisation de tous les traitements fastidieux.

Fonctionnement de PHP avec un serveur Web

Etudions d'abord la procédure usuelle qui permet d'envoyer une page Web à un navigateur. Tout commence lorsque ce dernier émet une requête (GET) pour afficher un document HTML à partir d'une URL. Celle-ci indique l'adresse du serveur, l'emplacement et le nom du fichier. Le serveur reçoit également d'autres informations : version du navigateur, système d'exploitation du client, adresse IP, etc. Beaucoup d'autres données peuvent ainsi être transmises au serveur par le biais d'un formulaire par exemple.

Si la requête concerne l'affichage d'une page HTML le serveur recherche simplement le document, indique au navigateur qu'il va recevoir du texte (au format HTML) et envoie le contenu du fichier. Le navigateur reçoit le contenu de la page et commence à l'afficher à l'écran en interprétant tout le code HTML. Cela n'a rien de bien compliqué si vous connaissez dejà un peu le langage à Balise HTML.

Voyons maintenant le traitement des CGI. Quand un serveur reçoit une requête qui pointe vers un script, il ne se contente plus d'envoyer le contenu du fichier, il doit auparavant l'exécuter. De cette façon, le script génère du code HTML que le serveur pourra ensuite envoyer au client. Du côté du navigateur ce dernier se limite à la réception du code HTML et à son affichage. Bref c'est le serveur qui se charge du gros du travail, ce que l'on a un peu trop souvent tendance à oublier.

Quand une page PHP est incluse dans la requête d'un client la procédure est exactement la même que celle que nous venons de voir avec les CGI. En fait, le script est d'abord traité par l'analyseur PHP qui générera le code HTML que le serveur enverra ensuite au client.

Ce dont vous avez besoin pour commencer

Pour développer vos pages dynamiques, on peut retenir deux solutions :
  1. l'installation d'un serveur local et des composants associés
  2. travailler comme pour le développement des pages statiques HTML
Dans le cas 2), vous serez vite bloquer par des problèmes d'aller retour incessant avec le Serveur de production du fait des problèmes de mise au point de vos programmes avec un langage de script comme PHP, PERL qui demandent une connaissance minimun de la programmation.

Nous retenons uniquement la solution 1) qui consiste à faire fonctionner localement vos pages dynamiques. Deux systèmes d'exploitation permettent de travailler dans de bonnes conditions : Unix (linux) et Windows NT.

On notera que PHP est plutôt employé avec un serveur Apache et Linux comme système d'exploitation. Mais le but ici est de trouver une solution la plus simple possible pour faire fonctionner vos pages dynamiques. A cet effet, quatres composants sont nécessaires :
  • un système d'exploitation : Linux ou Windows
  • un serveur WWW : Apache, Xitami, PWS (Personel Web Serveur)
  • un langage de script : PHP, PERL
  • un (ou des) éditeur(s) : Arachnophilia, 1st Page 2000, HTML-Kit, Phpedit, vi, emacs
  • une base de données : PHP préfère MySQL.


La structure des Programmes

Il est tout à fait possible de mélanger, au sein d'une même page, des instructions HTML et des instructions PHP. Pour que le serveur qui vous héberge puisse comprendre qu'il va devoir interpréter un script en PHP, il faut lui indiquer le début et la fin du code, de même façon que vous le feriez pour du javascript par exemple.

Depuis la version 3 de PHP, plusieurs balises sont acceptées. On peut ainsi indifféremment écrire :
<?
   ... Instructions PHP
?>
ou
<?php
   ... Instructions PHP
?>
ou
<script langage="php">
   ... Instructions PHP
</script>
On peut utiliser les mêmes balises qu'en ASP, à savoir :
<%
   ... Instructions PHP
%>
Les balises de début et de fin de langage PHP doivent encadrer les instructions PHP. Cela ne veut pas dire qu'il faut mettre ces balises pour chaque instructions. Vous pouvez en effet insérer autant de lignes PHP que vous voulez entre ces balises :
<?
   ... Instructions PHP 1
   ... Instructions PHP 2
   ... Instructions PHP 3
   ... Instructions PHP 4
?>
Synseo