PHP est un langage de script côté serveur qui sert à construire des pages web. Un fichier .php s'exécute sur le serveur web, affiche du HTML (par exemple avec echo "<h1>Hello</h1>";), et le serveur envoie ce HTML au navigateur du visiteur. Le navigateur ne voit jamais le code PHP, seulement son résultat.
Cliquez sur Run : PHP construit la page ci-dessous, et l'onglet Page l'affiche comme le ferait un navigateur.
Passez à l'onglet Output pour voir le HTML brut que PHP a affiché. Ce texte est exactement ce que recevrait un navigateur. Modifiez un prix ou ajoutez un article, puis relancez.
À quoi sert PHP
PHP a été conçu pour le web, et c'est encore là qu'il tourne le plus :
- Sites et CMS. WordPress, Drupal et Joomla sont écrits en PHP, comme tous les sites construits avec eux.
- Applications web. Des frameworks comme Laravel et Symfony servent à créer des boutiques, des tableaux de bord, des produits SaaS et des outils internes.
- API. Un script PHP peut afficher du JSON au lieu du HTML, et c'est ainsi que beaucoup d'applications mobiles et de frontends JavaScript récupèrent leurs données.
- Scripts en ligne de commande. Tâches cron, imports de données, générateurs de rapports et outils de déploiement se lancent avec
php script.php, sans serveur web.
Comment une requête PHP devient du HTML
Quand quelqu'un ouvre https://example.com/menu.php, voici ce qui se passe :
- Le navigateur envoie une requête HTTP au serveur.
- Le serveur web (Apache, Nginx avec PHP-FPM, ou le serveur intégré de PHP) voit l'extension
.phpet transmet le fichier à PHP. - PHP exécute le fichier de haut en bas. Le texte en dehors des balises
<?php ... ?>est copié tel quel dans la sortie ; le code à l'intérieur des balises s'exécute et peut afficher d'autres textes avececho. - Tout ce que PHP a affiché devient le corps de la réponse, et le navigateur l'affiche.
- PHP oublie tout. La requête suivante relance le script depuis zéro.
L'étape 5 explique pourquoi les applications PHP utilisent des sessions et des bases de données : rien de ce qui est stocké dans une variable ne survit entre deux requêtes. Le formulaire ci-dessous montre ce cycle. Exécutez-le, tapez un nom dans le formulaire et cliquez sur Send : le même script s'exécute à nouveau, cette fois avec $_POST rempli.
htmlspecialchars transforme des caractères comme < en <, si bien qu'un nom comme <b>Ada</b> s'affiche en texte au lieu de devenir du balisage. Toute valeur qui vient d'un visiteur doit être affichée ainsi ; les détails sont sur la page htmlspecialchars.
PHP se mélange au HTML
Un fichier PHP peut contenir uniquement du code, ou être une page HTML avec des îlots de PHP. Trois balises font presque tout le travail :
| Balise | Ce qu'elle fait |
|---|---|
<?php ... ?> | Exécute le code qu'elle contient |
<?= $value ?> | Raccourci de <?php echo $value; ?> |
?> à la fin d'un fichier | Facultative ; omettez-la dans les fichiers qui ne contiennent que du PHP |
Mettez $hour à 9 et relancez pour voir l'autre salutation.
À quoi ressemble du code PHP
Les variables commencent par $, les instructions se terminent par ;, et les chaînes entre guillemets doubles peuvent contenir des variables. Les tableaux servent à la fois de listes et de dictionnaires clé/valeur.
Ici la sortie est du texte brut, car le script n'affiche aucune balise HTML. C'est le même code que vous exécuteriez depuis un terminal.
PHP moderne (PHP 8)
PHP 8.0 (2020) a ajouté les expressions match, les arguments nommés, les types union, str_contains() et un compilateur JIT ; PHP 8.1 a ajouté les enums et les propriétés readonly. Du code écrit pour PHP 8.3 ressemble à ceci :
Ce que signifie PHP
PHP signifie « PHP: Hypertext Preprocessor ». Le nom est récursif : le premier P désigne PHP lui-même. Rasmus Lerdorf a publié la première version en 1995 sous le nom « Personal Home Page Tools », un ensemble de scripts pour sa page personnelle, et le nom actuel est arrivé avec PHP 3 en 1998. « Préprocesseur hypertexte » décrit bien son rôle : PHP traite un fichier avant que l'hypertexte (le HTML) soit envoyé.
Erreur fréquente au début : ouvrir un fichier .php dans le navigateur
Double-cliquer sur index.php l'ouvre comme un fichier local, et le navigateur affiche le code PHP brut ou propose de le télécharger. Rien ne s'exécute, car il n'y a pas de PHP de l'autre côté. Un fichier .php doit être servi par un serveur web qui le transmet à PHP. Sur votre propre ordinateur, le plus court est le serveur intégré de PHP :
php -S localhost:8000
Ouvrez ensuite http://localhost:8000/index.php. La page exécuter du PHP explique cela ainsi que l'exécution de scripts depuis le terminal, et installer PHP vous aide d'abord à installer PHP sur votre machine.
Questions fréquentes
Que signifie PHP ?
PHP signifie « PHP: Hypertext Preprocessor », un acronyme récursif. Le nom d'origine, en 1995, était « Personal Home Page Tools », d'après les scripts que Rasmus Lerdorf avait écrits pour son propre site.
PHP est-il un langage frontend ou backend ?
Backend. PHP s'exécute sur le serveur, et le navigateur ne reçoit que le HTML (ou le JSON) que le script a affiché. Le navigateur ne voit jamais le code PHP lui-même.
À quoi sert principalement PHP ?
À construire des pages et des applications web côté serveur : sites de contenu, boutiques, interfaces d'administration et API. WordPress, Drupal, Magento, Laravel et Symfony sont tous écrits en PHP. Il exécute aussi des scripts en ligne de commande, comme des tâches cron ou des imports de données.
PHP est-il encore utilisé en 2026 ?
Oui. W3Techs détecte PHP sur environ trois quarts des sites dont il peut identifier le langage côté serveur, en grande partie grâce à WordPress. Le langage évolue activement : PHP 8.0 a ajouté match, les arguments nommés et un compilateur JIT, et PHP 8.1 les enums et les propriétés readonly.
PHP est-il facile à apprendre ?
C'est l'un des premiers langages les plus simples pour le web : un fichier contenant <?php echo "Hello"; est déjà une page qui fonctionne, et tous les hébergements mutualisés l'exécutent. Le plus difficile est de prendre tôt les bons réflexes de sécurité, comme échapper l'affichage avec htmlspecialchars et utiliser des requêtes préparées pour le SQL.