Leçon 3 / 12
Leçon 03 · Partie 1 — Les fondamentaux

Afficher des données

À quoi ça sert dans la vraie vie ?

Tout ce que tu vois sur une page vient de quelque part. PHP doit l'afficher au bon endroit. Cette leçon explique comment envoyer du contenu dans la page.

echo — la commande de base

echo est l'instruction la plus utilisée. Elle envoie du texte dans la page HTML.

PHP
<?php
echo "Bonjour !";
echo "<p>Un paragraphe HTML</p>";
echo 42;
echo 3.14;

Ce que le navigateur affiche :

Résultat
Bonjour !
Un paragraphe HTML
42
3.14

echo affiche du texte, des nombres, et même du HTML. Le navigateur interprète les balises normalement.

echo peut afficher plusieurs choses d'un coup, séparées par des virgules : echo "Bonjour ", $prenom, " !";. Pratique !

Assembler des textes avec le point (.)

En PHP, on colle plusieurs textes avec le point .. C'est la concaténation — comme coller des morceaux de papier.

Exemple : afficher "Bonjour, Marie !" avec le prénom dans une variable.

PHP
$prenom = "Marie";
$nom    = "Dupont";

echo "Bonjour, " . $prenom . " " . $nom . " !";
Résultat
Bonjour, Marie Dupont !

Le point colle dans l'ordre : "Bonjour, " + "Marie" + " " + "Dupont" + " !" = "Bonjour, Marie Dupont !".

Raccourci pour ajouter du texte à une variable :

PHP
$message  = "Bonjour, ";
$message .= $prenom;   // .= veut dire "ajoute à la fin"
$message .= " !";
echo $message;
Résultat
Bonjour, Marie !

.= ajoute du texte à la fin d'une variable. Pratique pour construire un message en plusieurs étapes.

L'interpolation — la méthode plus simple

Encore plus simple : mettre la variable directement dans la chaîne entre guillemets doubles. PHP la remplace automatiquement. C'est l'interpolation.

PHP
$prenom = "Marie";
$age    = 28;

echo "Je m'appelle $prenom et j'ai $age ans.";

// Pour les tableaux ou les propriétés d'objets,
// entoure de { } pour aider PHP à reconnaître la variable :
echo "Ton prénom est {$prenom} !";
Résultat
Je m'appelle Marie et j'ai 28 ans.
Ton prénom est Marie !

PHP remplace $prenom par "Marie" et $age par 28. Plus lisible que les points partout.

⚠️

Rappel : l'interpolation ne fonctionne qu'avec les guillemets doubles. Avec des guillemets simples, PHP affiche littéralement $prenom sans le remplacer.

Générer du HTML avec echo

PHP peut générer n'importe quelle balise HTML. Tu peux créer des pages entières avec des données venant d'une base de données.

PHP
$titre  = "Mon blog";
$auteur = "Marie";
$vues   = 1542;

echo "<h1>$titre</h1>";
echo "<p>Par <strong>$auteur</strong> — $vues lectures</p>";
Rendu HTML
Mon blog
Par Marie — 1542 lectures

Le navigateur reçoit du HTML avec les vraies valeurs. Il ne sait pas que ça vient de PHP.

Sécurité obligatoire : htmlspecialchars()

C'est important. À apprendre maintenant.

Un utilisateur peut taper <script>alert("hack")</script> dans un formulaire. Si tu affiches ça sans protection, le navigateur exécute ce code. Cette attaque s'appelle injection XSS. Un attaquant peut voler des comptes, rediriger vers de faux sites...

Solution : utilise toujours htmlspecialchars() avant d'afficher des données venant de l'extérieur.

PHP
// Ce que l'utilisateur a tapé dans un formulaire :
$saisie = '<script>alert("hack")</script>';

// DANGEREUX — le script s'exécute dans le navigateur !
echo $saisie;

// SÉCURISÉ — les < > " sont transformés en code HTML inoffensif
echo htmlspecialchars($saisie);
Résultat sécurisé (affiché comme texte, jamais exécuté)
<script>alert("hack")</script>

htmlspecialchars() transforme les caractères dangereux en HTML inoffensif. Le < devient &lt;. Le navigateur affiche le texte sans l'exécuter.

⚠️

Règle d'or : formulaire, URL ($_GET), base de données — tout passe par htmlspecialchars() avant affichage. Toujours.

print_r() — voir le contenu d'un tableau

echo ne peut pas afficher un tableau. Utilise print_r() pour déboguer.

PHP
$fruits = ["pomme", "banane", "cerise"];
print_r($fruits);
Résultat
Array
(
    [0] => pomme
    [1] => banane
    [2] => cerise
)

3 éléments, chacun avec sa position (index 0, 1, 2) et sa valeur. On reverra print_r() en leçon 07.

// À retenir
  • echo affiche du texte, des nombres, ou du HTML dans la page
  • Le point . colle des textes bout à bout (concaténation)
  • .= ajoute du texte à la fin d'une variable existante
  • Les guillemets doubles permettent d'interpoler les variables directement dans le texte
  • Sécurité : htmlspecialchars() est obligatoire pour afficher des données venant de l'extérieur
  • var_dump() pour déboguer une variable, print_r() pour les tableaux