Une introduction à PHP
Dans cette section, nous voulons illustrer les principes de base
de PHP dans une courte introduction. Ce chapitre traite uniquement
de création de pages web dynamiques avec PHP, laissant de côté
temporairement les autres possibilités de PHP. Voir la section
Ce que peut faire PHP pour
plus d'informations.
Les pages web qui exploitent PHP sont traitées comme des pages
HTML standards, et il est possible de les créer, éditer et effacer
de la même façon qu'avec des pages HTML classiques.
La première page PHP
Ce tutoriel suppose que PHP est déjà installé.
Les instructions d'installation sont disponibles sur la
page de téléchargement.
Créer un fichier appelé hello.php
avec le contenu suivant :
Notre premier script PHP : hello.php
]]>
Depuis le terminal, il faut se rendre dans le répertoire contenant ce fichier et
démarrer un serveur de développement avec la commande suivante :
Il faut utiliser un navigateur pour accéder au fichier en utilisant l'URL du serveur web, se terminant
avec la référence au fichier /hello.php.
Selon la commande précédente exécutée, l'URL sera
http://localhost:8000/hello.php.
Si tout est configuré correctement, ce fichier sera analysé par PHP
et la sortie "Hello World!" sera affichée dans le navigateur.
PHP peut être intégré dans une page web HTML normale. Cela signifie que, dans le document HTML,
il est possible d'écrire des instructions PHP, comme démontré dans l'exemple suivant :
Test PHP
Bonjour le monde'; ?>
]]>
Cela produira le résultat suivant :
Test PHP
Bonjour le monde
]]>
Ce programme est extrêmement simple et PHP n'est pas nécessaire
pour créer une page web comme ceci. Elle ne fait qu'afficher
Bonjour le monde, grâce à la fonction
echo
de PHP. Il est à noter que ce fichier n'a pas besoin d'être exécutable
ou autre, dans aucun cas. Le serveur sait que ce fichier a besoin d'être interprété
par PHP, car l'extension ".php" est utilisée, et le serveur est configuré pour
les passer à PHP. Il s'agit d'une page HTML normale qui contient une série
de balises spéciales qui permettent de réaliser beaucoup de choses intéressantes.
Le point important de cet exemple était de montrer le format des
balises spéciales PHP. Nous avons utilisé ici
<?php pour indiquer le début de la balise PHP.
Puis, nous avons introduit les commandes PHP et refermé les balises
PHP avec ?>. Il est possible de passer du mode PHP
au mode HTML et vice-versa, de cette manière, à volonté. Pour plus
d'informations, consulter la section du manuel sur la
syntaxe basique de PHP.
Une note sur les retours à la ligne
Les retours à la ligne ont une signification minime en HTML, cependant,
c'est toujours une bonne idée de rendre le HTML aussi joli et proche
que possible en y ajoutant des retours à la ligne. Un retour à la ligne
suivant immédiatement une balise de fermeture PHP (?>)
sera supprimé par PHP. Ceci peut être vraiment très utile lors de
l'insertion de plusieurs blocs PHP ou fichiers inclus contenant du PHP qui
n'est pas supposé afficher quoi que ce soit. En même temps, ce peut
être confus. Il est possible d'ajouter un espace après la balise fermante
PHP (?>) pour forcer l'espace et un retour à
la ligne à afficher, ou d'ajouter explicitement un retour à la ligne
dans le dernier echo/print du bloc PHP.
Une note sur les éditeurs de texte
Il existe de nombreux éditeurs de texte et environnements de
développement (IDE) utilisables pour créer, éditer
et gérer des applications PHP. Une liste partielle de ces outils
est entretenue à l'adresse
PHP Editor's List.
Pour recommander un éditeur particulier, il suffit de visiter
cette page et de demander au webmestre de l'ajouter. Avoir au minimum
un éditeur de texte avec la coloration syntaxique peut être utile.
Une note sur les traitements de texte
Les traitements de texte tels que StarOffice Writer, Microsoft Word et
Abiword sont de très mauvais choix pour éditer des scripts PHP.
Pour utiliser l'un d'entre eux malgré tout pour tester des
scripts, il faut s'assurer de sauver les fichiers au format
texte seul (plain text) : sinon, PHP ne sera pas capable de lire
et d'exécuter ces scripts.
Maintenant que le script PHP précédent fonctionne, c'est le moment
de créer le meilleur script PHP ! Un appel à la fonction
phpinfo affichera beaucoup d'informations
intéressantes sur le système et sa configuration comme les
variables pré-définies disponibles,
les modules PHP chargés ainsi que la configuration.
Prendre le temps de revoir ces informations importantes.
Récupération des informations du système depuis PHP
]]>
Trucs pratiques
Réalisons maintenant quelque chose de plus puissant. Nous allons
vérifier le type de navigateur que le visiteur de notre site utilise.
Pour cela, nous allons accéder aux informations que le navigateur
du visiteur nous envoie, lors de sa requête HTTP. Cette information
est stockée dans une variable.
Les variables sont faciles à repérer, car elles commencent toutes par
un signe dollar. La variable qui nous intéresse ici est
$_SERVER['HTTP_USER_AGENT'].
$_SERVER est une
variable spéciale de PHP, qui contient toutes les informations
relatives au serveur web. C'est une variable réservée de PHP,
et une superglobale. Se reporter aux pages du manuel traitant des
Auto-globales
(aussi connues sous le nom de super-globales).
Pour afficher cette variable, nous pouvons simplement faire :
Afficher le contenu d'une variable (élément de tableau)
]]>
Un résultat possible du script pourra alors être :
Il y a de nombreux types de
variables disponibles en PHP. Dans l'exemple ci-dessus, nous avons affiché
un élément d'une variable Tableau (Array).
Les tableaux peuvent être très utiles.
$_SERVER est juste une variable qui est automatiquement
disponible dans le script. Une liste de toutes les variables qui sont
rendues disponibles est fournie dans la section
Variables réservées ; il est
également possible d'en obtenir une liste complète en lisant l'affichage de la fonction
phpinfo utilisée dans l'exemple de la section précédente.
Il est possible d'ajouter plusieurs commandes PHP dans une balise PHP, et créer
de petits blocs de code qui réalisent des opérations plus complexes
qu'un simple affichage. Par exemple, si nous voulons vérifier que le
navigateur est bien de la famille Firefox, nous pouvons
faire cela :
Exemple utilisant les
structures de contrôle et
les fonctions
]]>
Le résultat de ce script, avec Firefox, sera :
Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une
structure if.
Les personnes familières avec les syntaxes de base du langage C ne seront
pas surprises. Dans le cas contraire, il est recommandé de lire une
introduction à PHP et d'assimiler les premiers chapitres, ou bien
de consulter le chapitre consacré à
la référence du langage.
Le second concept que nous avons introduit est la fonction str_contains.
str_contains est une fonction intégrée à PHP, qui détermine
la présence d'une chaîne donnée dans une autre. Dans notre cas, nous
avons recherché la chaîne "Firefox" (appelée needle)
dans $_SERVER['HTTP_USER_AGENT'] (appelée haystack).
Si la chaîne recherchée est trouvée, la fonction retourne &true;. Sinon, elle retourne &false;.
Si elle retourne &true;, la structure if
reçoit &true; et le code entre accolades {} est exécuté. Sinon, le code n'est pas
exécuté. Il est recommandé d'expérimenter d'autres exemples, à l'aide de
if,
else, et d'autres
fonctions comme strtoupper et
strlen. Chaque page de la documentation contient aussi
des exemples. En cas de doute sur l'utilisation de ces fonctions, il est recommandé de lire
la page du manuel
"comment lire une définition de fonction"
ainsi que la section sur les fonctions PHP.
Il est maintenant possible de progresser et de montrer comment utiliser le mode PHP,
au milieu du code HTML :
Passer du mode PHP au mode HTML et vice-versa
str_contains() a retourné true
Vous utilisez Firefox
str_contains() a retourné false
Vous n'utilisez pas Firefox
]]>
Un exemple de résultat obtenu dans ce script est :
str_contains() a retourné true
Vous utilisez Firefox
]]>
Au lieu d'utiliser une commande echo pour afficher
du texte, il est possible d'utiliser du code HTML pur. Le point important à noter
ici est que la logique de programmation est conservée. Seul un des deux
blocs HTML sera affiché, suivant le résultat de la fonction str_contains.
En d'autres termes, cela dépend si la chaîne Firefox
a été trouvée ou non.
Utiliser un formulaire
L'un des points forts de PHP est sa capacité à gérer les formulaires.
Le concept de base qui est important à comprendre est que tous les
champs d'un formulaire seront automatiquement disponibles dans le
script PHP d'action. Consulter le chapitre du manuel concernant les
variables depuis des sources externes à PHP
pour plus d'informations et d'exemples sur la façon d'utiliser les
formulaires. Voici un exemple de formulaire HTML :
Un simple formulaire HTML
]]>
Il n'y a rien de particulier dans ce formulaire. Il est en HTML
pur, sans aucune configuration particulière. Lorsque le visiteur
remplit le formulaire et clique sur le bouton Valider, le
fichier action.php est appelé. Dans ce
fichier, il est possible d'écrire le script suivant :
Afficher des données issues d'un formulaire
.
Tu as ans.
]]>
Voici le résultat possible, selon
les valeurs saisies :
Mis à part les parties htmlspecialchars et
(int), ce script ne fait que des choses évidentes.
htmlspecialchars s'assure que tous les caractères
spéciaux HTML sont proprement encodés afin d'éviter des injections
de balises HTML et de Javascript dans les pages. Pour l'âge, vu que
c'est un entier, il est possible de le
convertir en un
&integer;. PHP peut également le faire
automatiquement en utilisant l'extension
filter.
Les variables $_POST['nom'] et
$_POST['age'] sont automatiquement créées par PHP.
Un peu plus tôt dans ce tutoriel, nous avons utilisé la variable
$_SERVER, une superglobale. Maintenant, nous avons
introduit une autre superglobale $_POST
qui contient toutes les données envoyées par la méthode POST. Il est à noter que
dans notre formulaire, nous avons choisi la méthode POST.
Si nous avions utilisé la méthode GET alors notre formulaire
aurait placé ces informations dans la variable $_GET,
une autre superglobale. Il est également possible d'utiliser la variable
$_REQUEST,
pour ne pas se soucier de la méthode utilisée. Elle contient
un mélange des données de GET, POST et COOKIE.
Et après ?
Avec ces connaissances, il est maintenant possible de comprendre
l'essentiel de la documentation PHP, et les différents scripts d'exemples
disponibles dans les archives.
Différentes présentations des capacités de PHP sont disponibles sur le
site des conférences PHP :
&url.php.talks;.