Privacy Policy Cookie Policy Terms and Conditions PHP: Hypertext Preprocessor - Wikipédia

PHP: Hypertext Preprocessor

Un article de Wikipédia, l'encyclopédie libre.

Vous avez de nouveaux messages (diff ?).
Pour les articles homonymes, voir PHP. 

image:Langage_progr.png
Cet article fait partie de la série
Langages de programmation
Langages à objets
C++ - C#
Delphi - Eiffel - Java
Groovy - Python - Ruby
Simula - Smalltalk
Visual Basic - WinDev
Langages impératifs
APL - ASP - Assembleur
BASIC - C - Cobol
Forth - Fortran - Logo
Pascal - Limbo - Perl - PHP
Langages fonctionnels
Haskell - ML/OCaml
Lisp/Common Lisp
Scheme
XSLT
Langages déclaratifs
Clips - Prolog
Langages concurrents
Ada 95 - Erlang
Langage de balisage
HTML - SGML - XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

PHP (venant de l'acronyme récursif PHP: Hypertext Preprocessor), est un langage de scripts libre principalement utilisé pour être exécuté par un serveur HTTP, mais il peut fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un langage procédural disposant en version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plate-forme plus qu'un simple langage. En fait il s'agit bien d'une alternative à Java et à DotNet.


Sommaire

[modifier] Historique

Ce langage a été créé en 1994 par Rasmus Lerdorf pour son site Web. C'était à l'origine une bibliothèque logicielle en Perl dont il se servait pour conserver une trace des visiteurs qui venaient consulter son CV. Au fur et à mesure qu'il ajoutait de nouvelles fonctionnalités, Rasmus a transformé la bibliothèque en une implémentation en langage C, capable de communiquer avec les bases de données et de créer des applications dynamiques et simples pour le World Wide Web. Rasmus décida alors en 1995 de publier son code, pour que tout le monde puisse l'utiliser et en profiter. PHP s'appelait alors PHP/FI (pour Personal Home Page Tools/Form Interpreter). En 1997, deux étudiants, Andi Gutmans et Zeev Suraski, redéveloppèrent le cœur de PHP/FI. Un an plus tard, le résultat donna le Zend Engine, nouveau cœur de PHP/FI, devenu alors PHP: Hypertext Preprocessor en version 3.

En 2002, il était utilisé par plus de 8 millions de sites Web à travers le monde, en 2004 par plus de 15 millions. La version actuelle est la version 5, elle corrige certaines failles et rajoute de nouvelles fonctions et bibliothèques.

La version 5.0.0 de PHP est sortie le 13 juillet 2004 : elle utilise Zend Engine 2 et introduit une programmation orientée objet plus efficace et plus complète, une gestion des erreurs basée sur le modèle des exceptions, ainsi que des fonctionnalités de gestion pour les entreprises. PHP 5 apporte beaucoup de nouveautés, telles que le support de SQLite, qui est un système léger de gestion de bases de données embarqué, au détriment de la bibliothèque cliente de MySQL, plus puissante mais qui n'est désormais plus fournie par défaut, ainsi que des moyens de manipuler des fichiers et des structures XML basés sur libxml2 :

  • une API simple nommée SimpleXML,
  • une API Document Object Model assez complète,
  • une interface XPath utilisant les objets DOM et SimpleXML,
  • intégration de libxslt pour les transformations XSLT via l'extension XSL,
  • une bien meilleure gestion des objets par rapport à PHP4, avec des possibilités équivalentes à java.

La version actuelle est la 5.2.0 datant du 2 novembre 2006.

[modifier] Qu'est-ce que le langage PHP ?

Le langage PHP est principalement un langage de programmation web côté serveur ce qui veut dire que c'est le serveur (la machine qui héberge le site web en question) qui va interpréter le code PHP et générer du code qui pourra être interprété par un logiciel. Le plus souvent, le code généré est le HTML afin d'être lu par un navigateur mais il peut être utilisé pour d'autres langages ou formats tels que WML, GIF, PDF, etc.

Il a été conçu pour permettre la création d'applications dynamiques, le plus souvent dédiées au web. PHP peut être installé sur les principaux serveurs web du marché, les plus répandus étant IIS et Apache. Ce couplage permet de récupérer des informations issues d'une base de données, d'un système de fichiers (contenu de fichiers et de l'arborescence) ou plus simplement des données envoyées par le navigateur afin d'être interprétées ou stockées pour une utilisation ultérieure.

C'est un langage peu typé et souple et donc facile à apprendre par un débutant mais, de ce fait, des failles de sécurité peuvent rapidement apparaitre dans les applications.

Son utilisation commence avec le traitement des formulaires puis par l'accès aux bases de données. L'accès aux bases de données est aisé une fois l'installation des modules correspondant effectuée sur le serveur. La force la plus évidente de ce langage est qu'il est devenu au fil du temps un incontournable des offres d'hébergement.

Libre, gratuit, simple d'utilisation et d'installation, ce langage nécessite comme tout langage de réseau une bonne compréhension des mécanismes sous-jacents ainsi qu'une connaissance des problèmes de sécurité.

[modifier] Fonctionnement

Capture d'écran de vi en fond, affichant un script PHP, et à droite le résultat du script interprété par PHP
Agrandir
Capture d'écran de vi en fond, affichant un script PHP, et à droite le résultat du script interprété par PHP

Sa syntaxe et sa construction ressemblent à celles des langages C++ et Perl, à la différence que le PHP peut être intégré dans du code HTML. On peut considérer le PHP comme une version simplifiée du Perl qui appartient lui-même à la grande famille des descendants du C, ce qui explique les très nombreuses similitudes de syntaxe.

Dans une utilisation Web, l'exécution du code PHP se fait ainsi : lorsqu'un visiteur demande à consulter une page Web, son navigateur envoie une requête à un serveur HTTP. Si la page contient du code PHP, l'interprète PHP du serveur le traite et renvoie du code généré (HTML).
Voici un petit schéma pour illustrer le principe :

Schéma du fonctionnement de PHP



L'utilisation la plus répandue est celle qui fait de PHP un générateur de page Web (contenant du code HTML, CSS, JavaScript, etc.). Ce langage permet donc de générer des pages au contenu dynamique (différent en fonction des données passées en paramètres, souvent par le biais de formulaires), mais peut aussi être utilisé comme langage de programmation en ligne de commande sans utiliser de serveur HTTP ni de navigateur. Cette fonctionnalité prend tout son sens dans un environnement de serveur Linux. Pour réaliser un script PHP exécutable, il suffit comme en Perl ou en Bash d'insérer dans le code en première ligne : #!/usr/bin/php sur la plupart des distributions.

Il existe aussi une extension appelée PHP-GTK permettant de créer des applications clientes graphiques sur un ordinateur disposant de la bibliothèque graphique GTK.

PHP possède un grand nombre de fonctions permettant des opérations sur le système de fichiers, la gestion des bases de données, des fonctions de tri et hachage, le traitement de chaînes de caractères, la génération et la modification d'images, des algorithmes de compression...

Le moteur de Wikipédia est écrit en PHP avec une base MySQL. Il s'intègre donc dans une plateforme LAMP.

[modifier] Syntaxe

Un exemple du traditionnel Hello World :

<?php
echo 'Hello, World!!';
?>

Résultat affiché :

Hello, World!!

PHP interprétera uniquement le code qui est délimité par <?php et ?>. Bien que les balises <? et ?> puissent être également utilisées sur une configuration par défaut, elles sont peu recommandées car elles dépendent de la configuration du serveur.

[modifier] Mascotte

PHP est souvent accompagné de l'elePHPant, dessiné par El Roubio. Il s'est inspiré de la ressemblance des lettres PHP avec un éléphant, d'où le nom. El Roubio a aussi inventé la PHPin'up. Toutes ses œuvres sont distribuées sous licence GNU/GPL. Il existe aussi des origamis ElePHPant.

A l'heure actuelle, voici l'allure de l'ElePHPant:

ElePHPant


[modifier] Quelques exemples d'application

[modifier] Plate-forme LAMP

LAMP est un nom usuel pour désigner les plates-formes combinant :

Par extension, sous environnement Windows, on parlera de plate-forme WAMP.

WAMP « intégrés » particulièrement connus :

Sous Mac OS X:

  • Mamp (pour Macintosh Apache Mysql Php Phpmyadmin)
  • WebServerXKit (pour Macintosh Apache Mysql Php Phpmyadmin Ruby On Rails)

Noter que la plupart de ces plates-formes sont destinées pour le développement d'applications web et non pour la mise en ligne directe de scripts!

[modifier] Voir aussi

[modifier] Articles connexes

[modifier] Liens externes

Le Wiktionnaire possède une entrée pour « PHP ».

[modifier] Sites de référence

  • (en) PHP.net : Site officiel de PHP
  • (fr) Manuel PHP.net : Manuel du PHP sur le site officiel, en français.

[modifier] Portails spécialisés

[modifier] Utilisateurs professionnels

[modifier] Utilisateurs débutants

[modifier] Forums d'entraide

[modifier] Livres


Portail des logiciels libres – Accédez aux articles de Wikipédia concernant les logiciels libres.
Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique.
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu