racine uZine

Dans la même rubrique
Le coin des débutants
7 juillet 2002
28 mars 2002
20 février 2002
15 septembre 2000
11 septembre 2000
 
jeudi 13 septembre 2001
Niveau débutant, j’y connais rien et ça me gonfle déjà

Qu’est-ce que le PHP ?

Ami, viens voir l’éléphant bleu !
par Lirresponsable
 
 

Vous avez un site web (c.f. l’indispensable article abordant le sujet, sinon ce n’est pas la peine qu’on se décarcasse). Oui mais voilà : tous vos amis en ligne se moquent de vous car il n’est qu’en HTML, sans aucun script pourri de votre propre cru, et tout parasité par les Pop-up de pub, imposés par votre hébergeur . « PHP c’est le contenu dynamique de la vraie interactivité ! » gloussent-ils. « Avec PHP, t’es vraiment libre, et si tu ajoutes les formidables possibilités d’une base de données MySQL, wahou ! ». On vous a déjà fait le coup avec Linux qui allait vous libérer des OS fascistes du nord ouest des Etats-Unis. Cependant, vous êtes toujours sous Windows après avoir joué au ball-trap avec la RedHat 5.2 fr. Comment regagner l’estime de vos amis et enfin participer à la vague PHP ? Quelques infos rudimentaires pour une brève présentation.

La petite histoire

Pour la genèse du PHP, on peut se référer au manuel en ligne chez Nexen. En résumé : le créateur du langage de script PHP est Rasmus Lerdorf, qui au début de 1995 distribua une version publique, connue sous le nom de Personnal Homepage Tool, pour créer des pages web dynamiques, c’est-à-dire avec un ensemble d’utilitaires simples (livre d’or, compteur, forum, formulaires, etc.).

Par la suite, cette version s’est développée, de telle sorte que PHP est compris à présent comme abréviation de Préprocesseur Hypertexte.

Définitions

Le PHP (Hypertext Preprocessor) est un langage de script, qui fonctionne côté serveur. Très bien vous direz-vous, mais qu’est-ce qu’un script, un langage de script, et qu’est-ce qu’un serveur ?

- Un script est une suite d’instructions simples, peu structurées, permettant d’automatiser certaines tâches.

- Un langage de script
est langage permettant de réaliser des programmes généralement petits et interprétés. L’intérêt est de faire simple, rapide, utilitaire

- Un serveur est un ordinateur détenant des ressources particulières et qu’il met à la disposition d’autres ordinateurs par l’intermédiaire d’un réseau.

Le terme « PHP » va donc pouvoir qualifier aussi bien un script, qu’un langage de script, que le programme qui interprète les scripts écrits dans ce langage.

Interpréteur et compilateur

Le script PHP, (i.e. la suite d’instructions), est interprété dans le langage de script PHP, cela veut dire ici qu’il n’est pas compilé. Oui, mais qu’est-ce que la compilation ?

Compiler, c’est passer du code source d’un programme à un exécutable binaire à l’aide du logiciel approprié (le compilateur), afin de traduire en langage machine les lignes de code.

L’exécutable est alors un programme en code binaire directement compréhensible par le processeur, ou fichier contenant des commandes entraînant des opérations de la part du système. Mais il n’est plus directement compréhensible par un humain, sauf mutant de la troisième génération capable de lire des lignes de code en binaire.

Les serveurs WEB sur lesquels le module PHP est installé permettent alors l’exécution de scripts PHP, puisque ces derniers fonctionnent du côté serveur (voir la définition). Ce qui n’est pas le cas de tous les serveurs et notamment de tous les hébergeurs de pages Web. Avant de télécharger des scripts pour ses pages web en ligne, il faut donc savoir si votre hébergeur offre le PHP.

Le script tel qu’en lui-même

Un script PHP quant à lui, est une suite d’instructions qui sont intégrées au code HTML. Exemple de script PHP :

<html>
<head>
<title>Exemple de script PHP</title>
</head>
<body>
<?php echo "Bonjour, je suis un script PHP!"; ?>
</body>
</html>

L’exemple n’est pas très convaincant, puiqu’on pourrait écrire directement dans le code HTML la phrase : « Bonjour, je suis un script PHP ! ». Mais il est volontairement simple afin d’illustrer la mixité du langage de script et du code HTML.

La fonction echo() permet d’afficher les chaînes de caractères dans le document envoyé par le serveur, et qui sera lu par le navigateur ; dans l’exemple : « Bonjour, je suis un script PHP ! ». Ce qui n’est pas rien.

Cependant pour comprendre l’intérêt des scripts, il faut ici retracer vraiment très brièvement l’histoire du Web en tant que plate-forme de communication interactive. Qu’est-ce qu’un Web dynamique et interactif ?

Web dynamique, youpi !

Les premières pages du Web étaient statiques et basées sur du code HTML simple. « Statique » signifie que pour changer le contenu affiché d’une page, il fallait modifier le code source et enregistrer celui-ci puis remplacer le document sur le serveur. Démarche pénible, lourde et donc limitée.

De plus, la communication entre le serveur et le visiteur qui consulte la page avec son navigateur n’était pas interactive, c’est-à-dire que le visiteur ne pouvait interroger, ni transmettre d’informations, en bref interagir avec ce qu’il consulte. (On pouvait donc à l’époque raconter n’importe quoi sur la future interactivité du Web).

Au contraire d’un forum actuel en ligne sur une page web. Par exemple : je lis un message, et décide d’y répondre, mon post apparaît sur la page. Ou d’un moteur de recherches, dans lequel je tape une requête, et ce dernier bien gentiment affiche les résultats de sa base de données. Ou d’un site que je visite et qui me propose de voter pour qu’il figure en tête de topgrosboeufsonline.com.

Common Gateway Interface

D’où l’idée de développer un standard permettant d’exécuter des programmes sur les serveurs Web, c’est-à-dire d’établir une plate-forme de communication standardisée entre les stations de travail des clients qui consultent et le serveur lui-même. Voilà le CGI, pour Common Gateway Interface.

Le langage de programmation qui s’est imposé pour écrire des programmes CGI est le Perl, pour Practical Extraction and Report Language. Langage Unix créé par Larry Wall en 1986.

- un schéma rustique pour visualiser :

image 460 x 371

Commentons là encore de manière très schématique, sans entrer dans le détail des protocoles et des opérations, qui sont ici simplifiés à l’extrême. Pour une présentation plus fouillée du CGI, voir le dossier de CCM.

- 1. Le client (i.e. l’internaute avec son navigateur) adresse humblement une requête au serveur Web. Par exemple, il clique sur une commande (submit, rechercher, etc.) d’un petit moteur de recherches, après avoir rempli la fenêtre de saisie, avec « sex with ornitho ».

- 2. Le code de la page consultée serait le suivant :

<html>
<body>
<form method=put action=/cgi-bin/rechercher.pl>
<pre>
<imput type=texte name=requete>
<input type=submit>
</pre>
</form>
</body>
</html>

Dans ce cas, le serveur va lancer le fichier programme « rechercher.pl » écrit en Perl (extension en .pl), avec l’interpréteur Perl, puisque le Perl est un langage interprété. Ce qui suppose bien-sûr que l’interpréteur Perl soit installé sur le serveur.

- 3. Le programme CGI exécute les commandes, par exemple « extraire » telles données d’une base. (En gros, le programme lit les saisies et les compare aux enregistrements de la base de données).

- 4. Le programme CGI génère un message de réussite avec le lien trouvé, en cas de résultat positif.

- 5. Il le renvoie au serveur Web.

- 6, 7. Le résultat est transmis au client au format HTML. L’internaute le voit donc apparaître dans la fenêtre de son navigateur, par exemple « Résultats : http://www.sexwithornitho.com 100% ».

Le PHP

A la différence d’autres scripts CGI écrits dans d’autres langages tels que le Perl ou le C, le script PHP est inclus à l’intérieur de la page afin de réaliser une action précise. On l’a vu avec l’exemple simple du « Bonjour je suis un script PHP ! ». Ainsi, les lignes de code PHP sont incluses entre une balise de début et une balise de fin ( par exemple : <?php...?> ).

Ce qui n’est pas le cas dans l’exemple de programme CGI plus haut. En effet, on a vu que dans le code HTML indiqué c’est le nom du programme en Perl et son répertoire (/cgi-bin) qui figurent en vue d’une exécution grâce à l’interpréteur Perl installé sur le serveur. Le code en Perl, lui, se trouve dans le fichier « rechercher.pl ».

PHP mêle donc les données et la programmation, ce qui permet réellement d’écrire des scripts de façon simple et rapide. Ce qui ne veut pas dire que tous les scripts en PHP doivent nécessairement figurer in extenso dans chaque page. En effet, quand le code doit être réutilisé de manière régulière dans plusieurs scripts différents, ou dans différentes pages, on ne va pas réécrire à chaque fois ce code.

Le rôle d’un script est d’automatiser certaines tâches. Dans ce cas, on écrit ce code dans un fichier externe (nom_du_fichier.inc), qu’on appelle dans le script principal si besoin grâce à la fonction include (include "nom_du_fichier.inc" ;).

Ce qui distingue le PHP des langages de script comme le Javascript est que le code est exécuté sur le serveur et non par la machine cliente (qui consulte ce qui est hébergé par le serveur). Le client ne reçoit que le résultat du script, sans aucun moyen d’avoir accès au code qui a produit ce résultat (sauf si on le lui donne bien-sûr).

En résumé, le serveur reconnaît le script à la terminaison .php du document et l’interprète grâce au programme PHP, avant de le renvoyer au client.

Précisons néanmoins pour les puristes. Le programme PHP sur le serveur (ce qui interprète les scripts PHP) ne fonctionne pas nécessairement en CGI, mais peut être ajouté en mémoire en tant que bout d’exécutable supplémentaire, à la suite du code du serveur Web. De cette façon, à chaque fois qu’il y a une requête sur un script, le serveur Web n’a plus qu’à appeler PHP comme il appellerait une de ses propres sous-routines, et non en exécutant un programme externe. Mais revenons aux caractéristiques générales.

Le langage PHP possède les même fonctionnalités que les autres langages permettant d’écrire des scripts CGI, comme par exemple : collecter des données, générer dynamiquement des pages web ou bien envoyer et recevoir en douce des cookies.

De plus PHP est gratuit, et c’est aussi un logiciel libre, c’est-à-dire que son code source est accessible, modifiable, et on peut distribuer librement ces modifications.

Du côté du Serveur

On a vu que le PHP est un langage de script côté serveur. Cela veut dire que si vous voulez tester vos scripts en interne, sur votre ordinateur non connecté au Réseau, à l’aide de votre navigateur, il vous faut installer :

- 1. le programme PHP qui va interpréter vos scripts.

- 2. un serveur HTTP, c’est-à-dire le logiciel, pas la salle pleine de machines avec des techniciens qui mangent des pizzas.

En effet nous avons vu qu’avec le seul navigateur, les scripts PHP ne sont pas interprétés. Ce qui est gênant pour voir le rendu de vos pages et si vos scripts fonctionnent, c’est-à-dire par exemple ne comportent pas d’erreurs.

Plutôt que d’utiliser le FTP (File Transfer Protocol) pour envoyer vos fichiers sur le serveur de votre hébergeur afin de les consulter en ligne, démarche lourde, répétitive, coûteuse, le plus simple est d’installer un serveur local sur votre ordinateur.

« Local » en ceci que votre ordinateur n’est pas ici destiné à devenir un véritable serveur Web, connecté au Réseau avec certaines de vos données stockées sur le disque consultables par n’importe quel client. Encore une fois, il s’agit juste d’installer les programmes nécessaires pour tester vos scripts.

- comment installer un serveur local ?

Vous pouvez télécharger séparément Apache, PHP, MySQL, et tout configurer à la main. Mais ne le cachons pas, c’est relativement compliqué pour un débutant incapable de fabriquer une station Unix avec un trombone, un élastique et deux roudoudous.

Il y a heureusement beaucoup plus simple, car dans le monde du Libre, les bonnes volontés ne manquent pas, ouf ! Prenons l’exemple d’EasyPHP pour un environnement Windows.

EasyPHP, est un package qui regroupe Apache, PHP et MySQL.

- Apache est un serveur HTTP. C’est aussi un logiciel libre. Rappelons que le HTTP (HyperText Transfer Protocol) est comme son nom l’indique un protocole de transmission dédié aux clients et aux serveurs du web. Un serveur web est donc un logiciel permettant de rendre accessibles à de nombreux ordinateurs (les clients) des pages web stockées sur le disque.

- MySQL est lui aussi un logiciel libre, un SGBDR (un Système de Gestion de Bases de Données Relationnel). Les données sont organisées en fonction de leur utilisation (données fixes dans une table, données variables dans une autre, etc.).

L’installation vous sera familière : lancez l’exécutable easyphp1-4setup.exe et laissez le programme avec les paramètres par défaut (disque C :, répertoire \EasyPHP\), sauf si vous cherchez les ennuis, ou à faire le malin ; mais après, inutile de venir pourrir le forum ci-dessous.

Deux icones vont s’ajouter sur votre bureau : une petite plume rose pour Apache, et un simple, voire sobre, My SQL pour MySQL (les SGBDR sont en effet moins portés sur les parures de music-hall). Lancez évidemment Apache (et MySQL si besoin) avant de tester vos scripts.

Vous devrez placer vos documents avec du code PHP dans le sous-répertoire \www\. Sur le disque dur, l’adresse du document sera : "C :\EasyPHP\www\mon_fichier.php", alors que sous le navigateur elle sera : "http://localhost/mon_fichier.php". Magie du serveur local.

Pour d’autres explications plus détaillées sur l’installation et la configuration voir le site CCM. Pour Linux : phpmylinux.

- avec quoi j’écris mes scripts ?

Entre nous ce n’est pas d’un intérêt primordial, et il faudrait d’ailleurs arrêter de paniquer pour si peu ; et même de s’énerver en collant de grandes claques à votre micro (préférez votre animal domestique pour un tel traitement). Vous pouvez très bien utiliser un éditeur de texte simple, mais il est vrai qu’on se prive ainsi de la joie de télécharger un nouveau quelque chose.

Signalons donc un éditeur spécialement dédié et donc très pratique (gestion des fichiers, visualisation du résultats, etc.), le freeware PHP Editor, que l’on peut télécharger, sur le site de Jérôme Saynes.

Si vous écrivez vos scripts sous un logiciel de création de pages HTML, il faut que vos fichiers contenant du code PHP soient enregistrés avec l’extension .php (ou .php3 ou .php4 suivant la version de PHP utilisée), ce que ne font pas toujours de tels logiciels. Faites également attention à certains éditeurs qui laissent des instructions de formatage dans le document, ce qui rend le code inutilisable.

Quelques liens pour finir

Dans les myriades de sites en php qui causent du PHP, on pourra consulter avec profit les suivants (qui nous ont servi à rédiger cet article) :

- EasyPHP

- PHPinfo

- Manuel officiel PHP4

- CCM

- The PHP Group

- PHPMestre

- Un bref tutoriel PHP3

 
 
Lirresponsable
Imprimer
format impression

AMOK-FAAA
Memento finis

6 octobre 2003
15 juillet 2003
23 septembre 2000
 
SPIP
Web indépendant


> Qu’est-ce que le PHP ?
18 février 2005, message de Anne
 

J’ai passé la journée à essayer de comprendre le monde du PHP et je n’ai rien compris... et là je tombe sur ce site !!!
Je propose que celui qui a écrit ces articles (en plus avec humour ce qui ne gâte rien) soit élevé au rang de bienfaiteur de l’humanité.
Merci !!

Répondre


> Qu’est-ce que le PHP ?
16 février 2005, message de Boudin n°2
 

Je suis pas d’accord avec vous tous, c’est pas si clair que ca ; ou alors vous mentez, vous n’êtes pas si "débutants" que ca en informatique.
Cela dit j’ai qd même appris qq trucs.

Répondre


> Qu’est-ce que le PHP ?
1er juin 2004, message de Webmast. . .à l’aide !!!!!!!!!!!!!!
 

Cette article explique super bien ! et j’ai tt compris, ce qui ve dire que le type qui a fé cet article et un génie !!!!!
Mais justement, si j’ai bien compris, je peux pas utiliser easyPHP tant que j’ai pas un logiciel de création de page web ???

Répondre


> Qu’est-ce que le PHP ?
28 avril 2004, message de xis
 

Merci !!
Non seulement l’article m’a permis de me depuceler du php, et ce ; sans les graviers (euh la ponctuation devient freestyle, dsl) grâce un humour percutant so british et donc so discret.
Et ce n’est pas rien de pouvoir s’aerer le cerveau qd on decouvre une nouveauté en informatique. Du coup l’article passe comme une lettre à la poste et nous (débutants) allons pouvoir attaquer des textes plus ardus sans s’equiper des 2 tablettes de dolipran habituelles.

Cordialement

Répondre


> Qu’est-ce que le PHP ?
8 février 2004, message de yaen
 

Salut lire et sponsable (ah ça c’est du jeu de mot laid).

Un petit mot juste pour dire que GNU-Linux est abordable maintenant.

Prends la Mandrake 9.2, c’est enfin un OS alternatif (ce qui ne veut pas dire que MS c’est pas bien, c’estjuste différent comme Banesto ma vraie nature). J’y passe progressivement.

J’ai un portable Tosh... et une tour équipée en Mandrake et ça marche très bien. Il me reste une autre tour sous windows pour jouer car je n’ai pas de console de jeu. Comme j’ai pas encore installé Wine, je tate aussi du web avec Dreamweaver sous MS. Et pour finir un mur-feu sous IPCop.

Mais dire qu’on a un autocollant de pingouin pour faire le rebelle... c’est pas toujours le cas.

Répondre


> Qu’est-ce que le PHP ?
30 octobre 2003, message de napoleon
 

Comment aspirer un site dont tous les liens sont en php ?
Le php semble être conçu surtout pour emmerder ceux qui veulent télécharger des pages html et qui se retrouvent à la place avec des fichiers .php suivi du nom de l’instruction

Répondre
> Qu’est-ce que le PHP ?, yaen, 8 février 2004

pourqoui aspirer un site ? si ce n’est pour récupérer les photos de femmes nues plus vite ?

Répondre
> Qu’est-ce que le PHP ?, 22 mars 2004

des fois c’est juste pour graver des cd pour des mômes qui ont des pentium 133 (si, si)...

genre trucs "instructifs" mais "y-a-pas-internet-à-la-maison"

Répondre


> Qu’est-ce que le PHP ?
14 mai 2002
 

Merci de faire des articles aussi clairs. Je suis, en matiere d’ informatique (uniquement en ce domaine bien entendu), d’une profonde ignardise. Ces articles m’aident par leur structure et vocabulaire simples. Merci encore.

Répondre


> Qu’est-ce que le PHP ?
6 avril 2002
 

Trés bon article, je ne savais rien du php avant de le lire et maintenant tout me semble beaucoup plus clair. Merci
En lien finale je vous conseil phpfaitauquebec.com

Répondre


> Qu’est-ce que le PHP ?
27 janvier 2002, message de jc colombani
 

je galére , oui je fais le tour de tout ce qu’il y a d’ecrit sur spip , le php ,bin j’ai pas encore tout compris
mon but faire un site , j’ai commencé , sauf que je le trouve pas assez interactif, je souhaite une page d’accuille , mais la je suis perdu
ma question sur un squellette que j’ai sur mon dd , je peux le modifier sous web expert , mais ensuite dans quel repetoire le colle via ftp?

Répondre
> Qu’est-ce que le PHP ?, Klaude Charlier, 22 juillet 2002

si tu changes le squelette article-dist.html, place le au même niveau sur sur le serveur (sur le root du dossier ou tu as installé spip) et appelle le article.html, c’est lui qui devrait être utilisé plutot que "dist" et tu devrais voir ton oeuvre sans problèmes

@+
K

 
Répondre


> Qu’est-ce que le PHP ?
10 octobre 2001, message de Pascal
 

Euh, PHP, ça ne signifie pas exactement Préprocesseur HyPertexte. C’est encore un truc d’informaticien que le commun des mortels non virtuels aura du mal à capter. C’est un acronyme récursif. Voilà, le jargon technique est lâché. Les trois lettres "P" "H" et "P" doivent se lire à partir de la séquence de mots "PHP : Hypertext Preprocessor". Vous voyez donc qu’il faut déjà savoir que cela s’appelle PHP pour énoncer cette phrase. C’est ça la récursivité. Le truc du miroir en face du miroir, si vous voulez (vous savez, comme chez le coiffeur).
Voilà.
Sinon, merci à Lirresponsable pour cette présentation.

Pascal (un de www.phpfrance.com)

 
en ligne : Le Manuel de PHP
Répondre


Unix ?
19 septembre 2001, message de iscandar
 

je lis dans ton texte : "Langage Unix créé par Larry Wall en 1986."
ca serait pas plutot K&R en 69 ?

Répondre
> Unix ?, Zorglub da Monster, 19 septembre 2001

Non, ça c’est le C, pas le Perl.

Répondre


> Qu’est-ce que le PHP ?
13 septembre 2001, message de alex
 

C’est fou ça, le soir ou je decide de me mettre à comprendre le language de base de SPIP : le php et que je passe deux heures sur mon manuel en pdf, je découvre en me baladant comme souvent sur uzine un article sur le php. Vu que tu connais smeble t il bien le sujet, aurais tu le nom d’un bouquin moins chiant que le manuel pdf sur le php ?

Répondre
> > Qu’est-ce que le PHP ?, Franck, 19 septembre 2001

Un très bon manuel : PHP Professionel aux éditions Eyrolles
C’est un gros livre rouge.
Le meilleur site est www.php.net

Répondre
> Qu’est-ce que le PHP ?, 25 octobre 2004

Ce livre là est bien foutu mais bon on est passé au 5.0

 
en ligne : Maîtrisez PHP4
Répondre
> Qu’est-ce que le PHP ?, Bennour, 18 septembre 2005

bjr tout le monde
Dieu merci, certains savent s’exprimer et expliquer aux autres dans des termes simples des choses compliquées !
un grand merci à l’auteur de cet article qui mérite vraiment d’avoir une ip sur la toile, peut ton en dire autant de tous les autres sites ?

@+
abdel

Répondre