Gestion des apostrophes et guillemets lors de la génération des balises HTML à partir des résultats d’une requête

Les programmes PHP ont souvent comme tâche de générer des balises HTML à partir des résultats d'une requête. S'il est généralement assez simple de monter de telles balises, il arrive que les jeux d'apostrophes et de guillemets nous fassent perdre la tête. C'est particulièrement vrai lorsqu'on travaille avec mysql_fetch_assoc().

▼Publicité

Attention : la technique illustrée plus bas doit être utilisée lorsque le nom d'une variable contient des apostrophes, comme lorsqu'on utilise mysql_fetch_assoc() (ex : enreg['page_url']). Avec mysql_fetch_row(), le montage de la balise est généralement plus simple.

Ex : echo "<li><a href='$enreg[0]'>$enreg[1]</a></li>";

Voici donc une technique qui vous aidera à comprendre comment le code doit être monté.

  • Commencez par écrire dans un echo la balise HTML qui devra être générée par le programme. Par exemple, la balise suivante permettra de générer une option de menu menant vers la page promotions.php en cliquant sur le texte « Nos promotions ».

    PHP-MonterBalisesHTMLEnreg-1

  • Encerclez les informations qui doivent être lues dans la base de données. Attention : dans cet exemple, les apostrophes entourant « promotions.php » ne sont pas lues dans la BD. Elles doivent être générées par programmation.

    PHP-MonterBalisesHTMLEnreg-2

  • Avant chaque information lue dans la BD, refermez le guillemet puis ajoutez un point pour concaténer. Après chaque information lue dans la BD, ajoutez également un point pour concaténer puis réouvrez les guillemets.

    PHP-MonterBalisesHTMLEnreg-3

  • Pour vous aider à bien comprendre la commande PHP ainsi montée, encerclez les guillemets ouvrants et fermants. Faites de même avec les apostrophes. Dans cet exemple, vous voyez que l'apostrophe ouvrante entourant l'URL est écrite dans la première chaîne de caractères et que l'apostrophe fermante est écrite dans la deuxième chaîne, après l'enregistrement contenant l'URL.

    PHP-MonterBalisesHTMLEnreg-4

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories