La boucle a grossi : bandeau, rubrique, auteur, chapô… Et Léo, le petit-fils du maire, a promis de glisser une balise <script> dans un titre « pour voir ». Il est temps de ranger ce code dans une fonction, et de la rendre prudente.
Votre mission
- Déclarez une fonction
afficherArticle(array $article): string, qui renvoie le HTML complet d'un article (balise<article>, bandeau, rubrique, titre, auteur et chapô), au lieu de l'afficher. - Dans la fonction, passez le titre, l'auteur et le chapô par
htmlspecialchars()avant de les mettre dans le HTML. - Dans la boucle, il ne reste qu'une ligne :
echo afficherArticle($article);.
L'aperçu ne doit pas changer d'un pixel : c'est le code qui s'améliore.
Les tests feront passer par votre fonction un titre, un auteur et des chapôs de Léo, courts et longs, pour vérifier qu'ils restent du texte.
Rappel
Une fonction donne un nom à un morceau de code. Elle reçoit des paramètres, et return renvoie son résultat à qui l'a appelée. Les types (array, string) disent ce qu'elle attend et ce qu'elle rend : PHP refuse un mauvais argument plutôt que de deviner. htmlspecialchars() change < en < : le navigateur affiche la balise au lieu de l'exécuter. Pour construire le HTML petit à petit, rangez-le dans une variable et allongez-la avec .= : $html .= '<h2>…</h2>'; ajoute au bout de $html, puis return $html; le renvoie.