Le langage PHP a été mis au point au début d'automne 1994 par Rasmus Lerdorf pour conserver la trace des utilisateurs venant consulter son CV sur son site, grâce à l'accès à une base de données par l'intermédiaire de requêtes SQL. A la demande générale, il mit en ligne en 1995 la première version de ce programme qu'il baptisa Personal Sommaire Page Tools, puis Personal Home Page v1.0.
Devant le succès de PHP 1.0, Rasmus Lerdorf décida de l'améliorer en y intégrant des structures plus avancées telles que des boucles, des structures conditionnelles, et y intégra un package permettant d'interpréter les formulaires qu'il avait développé (FI, Form Interpreter) ainsi que le support de mSQL. C'est de cette façon que la version 2 du langage, baptisée pour l'occasion PHP/FI version 2, vit le jour durant l'été 1995. Il fut rapidement utilisé sur de nombreux sites (15000 fin 1996, puis 50000 en milieu d'année 1997).
A partir de 1997, Zeev Suraski et Andi Gurmans rejoignèrent Rasmus pour former une équipe de programmeurs afin de mettre au point PHP 3 (Stig Bakken, Shane Caraveo et Jim Winstead les rejoignèrent par la suite)qui fut disponible le 6 juin 1998. La version actuelle est PHP4.
PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) dont la syntaxe est inspirée de celles du langage C, du Perl et de Java. Ses principaux atouts sont :
· La gratuité et la disponibilité du code source distribué sous licence GNU GPL
· La simplicité d'écriture de scripts
· la possibilité d'inclure le script Php au sein d'une page HTML (contrairement aux scripts CGI, pour lesquels il faut écrire des lignes de code pour afficher chaque ligne en langage HTML)
· La simplicité d'interfaçage avec des bases de données.
· L'intégration au sein de nombreux serveurs web (Apache, Microsoft IIS, ...)
Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (donc non accentués) incluses dans un code HTML à l'aide de balises spéciales et stocké sur le serveur. Ce fichier doit avoir l'extension adéquate pour pouvoir être interprété par le serveur
Ainsi, lorsqu'un navigateur (le client) désire accéder à une page dynamique réalisé en php3:
· Le serveur reconnaît au suffixe (.php) qu'il s'agit d'un fichier php
· Il lit le fichier php3
· Le code php3 contenu dans le code HTML est délimité par les balises <?php et ?>
· Dès que le serveur rencontre une balise indiquant que les lignes suivantes sont du code php3, il ne lit plus les instructions mais les exécute
· Lorsque le serveur rencontre une instruction, il la transmet à l'interpréteur qui exécute l'instruction puis envoie les sorties éventuelles au serveur. A la fin du script, le serveur transmet le résultat au client (le navigateur)
Pour des raisons de conformité avec certaines normes (XML et ASP par exemple), plusieurs balises peuvent être utilisées : <?php et ?>, <? et ?>, <script language="php"> et </script>, <%php et %>.
Voici un exemple très simple de script php:
<html>
<head><title>Exemple</title></head>
<body>
<?php
echo "Hello world";
?>
</body>
</html>
On notera bien évidemment que la fonction echo permet d'afficher sur le navigateur la chaine délimitée par les guillemets...
Les commentaires sont introduits comme en langage C++, à l’aide des délimiteurs sont /* et */. ou en utilisant le double slash (//).
Le langage PHP est normalement sensible à la casse (en anglais case sensitive), sauf pour les noms de fonctions : print peut être appelée print(), Print() ou PRINT(). Enfin, toute instruction se termine par un point-virgule.
Comme pour asp, le code Php peut être implanté au sein du code HTML ce qui rend la programmation plus simple (il est plus simple d'écrire du code HTML que des fonctions echo ou print, dans lesquelles les caractères spéciaux doivent être précédés d'un antislash sous peine de voir des erreurs lors de l'exécution). Il est possible d'écrire plusieurs portions de script en Php, séparées par du code HTML statique car les variables/fonctions déclarées dans une portion de script seront accessibles dans les portions de scripts inférieures.
Avec PHP, les noms de variables doivent répondre à certains critères:
· un nom de variable doit commencer par une lettre (majuscule ou minuscule) ou un "_" (pas par un chiffre)
· un nom de variables peut comporter des lettres, des chiffres et le caractère _ (les espaces ne sont pas autorisés!)
La langage PHP propose trois types de variables scalaires:
· entiers: nombres naturels sans décimale (sans virgule)
· réels: nombres décimaux (on parle généralement de type double, car il s'agit de nombre décimaux à double précision)
· chaines de caractères: ensembles de caractères
Il n'est pas nécessaire de typer les variables, il suffit de leur assigner une valeur pour en définir le type:
· entiers: nombre sans virgule
· réels: nombres avec une virgule (en réalité un point)
· chaines de caractères: ensembles de caractères entre guillemets simples ou doubles
Instruction |
Type de la variable |
$Variable = 0; |
Type entier |
$Variable = 12; |
Type entier |
$Variable = 0.0; |
Type réel |
$Variable = 12.0; |
Type réel |
$Variable = "0.0"; |
Type chaîne |
$Variable = "Bonjour tout le monde"; |
Type chaîne |
Les tableaux stockent des données sous forme de liste.
Les données contenues dans la liste sont accessibles grâce à un index (un numéro
représentant l'élément de la liste). Contrairement à des langages tels que
le langage C, il est possible de stocker des éléments de types différents
dans un même tableau. Avec PHP, il n'est pas nécessaire de préciser la valeur
de l'index lorsque l'on veut remplir un tableau, car il assigne la valeur 0 au
premier élément (si le tableau est vide) et incrémente les indices suivants.
Il est possible de créer directement des tableaux multidimensionnels en utilisant plusieurs paires de crochets pour les index (autant de paires de crochets que la dimension voulue).
PHP permet l'utilisation de chaînes de caractères pour définir les indices d'un tableau (tableaux associatifs) :
$Toto["Age"] =
12;
$Toto["Adresse"]
= "22 rue des bois fleuris";
Avec PHP, les constantes sont définies grâce à la fonction define() dont la syntaxe define() est la suivante:
define("Nom_de_la_variable",
Valeur);
Le nom d'une constante définie à l'aide de la fonction define()
ne doit pas commencer par le caractère $ (de cette façon aucune affection
n'est possible).
Php3 fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces fonctions permettent d’insérer dans les données envoyées des valeurs variables ce qui rend possible la création de pages dynamiques.
La fonction echo permet d'envoyer au navigateur la chaîne de caractères (délimitée par des guillemets) :
echo "Chaine de
caracteres";
echo (1+2)*87;
Comme la chaîne est délimitée par des guillemets, ceux-ci, ainsi que tous les caractères spéciaux, doivent être précédés d'un antislash.
Caractère |
Description |
\" |
Guillemet |
\$ |
Caractère $ |
\\ |
barre oblique inverse (antislash) |
\r |
retour chariot |
\n |
retour à la ligne |
\t |
Tabulation |
Le caractère $ a un rôle particulier car l'interpréteur le comprend comme une variable, ce qui signifie que lorsque le caractère $ est rencontré dans la chaîne qui suit la fonction echo, l'interpréteur récupère le nom de la variable qui suit le caractère $ et le remplace par sa valeur.
Le serveur officiel php fournit une documentation complète en diverses de langues à la quelle nous nous réferrons fréquemment. De nombreux sites fournissent des exemples de scripts ou des tutoriels.