close

Exercice PHP 8 - TD Numéro 1

#1 Objectifs du TD open

  • Trouver la meilleure fonction dans le manuel PHP pour traiter une chaîne au format json.
  • Parcourir un tableau.
  • Utiliser echo.
  • Utiliser la substitution de variable dans une chaîne.

#2 Sujet open

Je vous donne une chaîne de caractères $json qui contient des données au format json. Ces données contiennent les informations pour afficher 3 lignes de HTML dans un navigateur. Vous avez, pour chaque ligne, le nom de la balise HTML (* h1,h2,p), accompagnée de son contenu.

Je vous demande :

  1. De trouver la meilleure fonction PHP qui permette de récupérer les informations qui se trouvent dans la chaîne $json et de les mettre dans un tableau.
  2. De faire ce qu'il faut pour afficher le HTML dans le navigateur.
PHP8 - Sujet du TD numéro 1

Ci-dessous, vous avez le code d'une structure minimale HTML avec des balises PHP. Entre ces balises PHP, j'ai déclaré la chaîne $json. Le mieux, c'est de copier-coller ce code pour démarrer.

#3 Solution pas à pas open

  1. Alors, vous allez peut-être trouver ça superflu mais... Je vous ai dit que cette chaîne était au format json. OK ! Alors la première chose qu'un codeur doit faire c'est de vérifier ce qu'on lui dit et ce qu'on lui donne !! Sans prétention. Perso, je me trompe, je suis étourdi ! Hé oui 🙃. Alors d'autres peuvent se tromper aussi. Donc, je vérifie. Je cherche avec les mots clés json check et je trouve cette page https://jsonlint.com/. Là, je copie et je colle la chaîne et je vérifie qu'elle est OK 😀.
  2. Maintenant, même si vous ne connaissez pas json, la logique veut que vous tapiez les mots clés php json sur Google. Là, vous choisissez la page de la documentation php officielle qui correspond à cette recherche php json.
  3. Au milieu de la page (* en haut à droite, vous pouvez la passer en français si besoin) vous avez un lien vers la fonction json_decode qui a la description suivante : "Décode une chaîne JSON". C'est logique d'aller voir ce que fait cette fonction, tranquille 😎.
  4. A la lecture de la page, vous voyez, que cette fonction récupère une chaîne encodée JSON et la convertit, que cette fonction peut vous retourner soit un objet, soit un tableau associatif. Compte tenu du contexte du TD, on va choisir tableau associatif. On mettra donc le deuxième paramètre à true.
    Résultat de l'exécution en PHP 8.2.1
    PHP8 - Solution pas à pas du TD numéro 1
  5. A ce stade, que vous vient-il à l'esprit ? Vous vous dites, maintenant, j'ai un tableau, et après ? Me voilà bien avancé ! Mais qu'est-ce que je vais faire avec un tableau ? Eh bien, vous pouvez le parcourir ! On a vu, que l'on pouvait faire ça, avec foreach. Ensuite, à chaque tour de boucle, il suffit de faire un echo, pour produire le HTML demandé. Et ce sera gagné !! 😤

    Résultat de l'exécution en PHP 8.2.1
    PHP8 - Solution pas à pas du TD numéro 1

#4 Conclusion open

Maintenant pour vous convaincre de la nécessité de vérifier la chaîne $json. Après le "Bonjour à toutes et à tous" je remplace la virgule par un point-virgule. Donc, je crée une erreur 😊. J'exécute. Si vous lisez le message d'erreur, vous pourriez croire que le problème se situe au niveau du foreach (* encore que l'on vous dit que le pb est sur les arguments). Mais vous pourriez perdre du temps. J'espère que je vous ai convaincu.

Conseils : Vérifiez souvent et si vous travaillez avec git faites souvent de petits commit.

Résultat de l'exécution en PHP 8.2.1
PHP8 - Solution pas à pas du TD numéro 1