Maison > développement back-end > Golang > le corps du texte

Comment afficher correctement les nouvelles lignes dans les modèles HTML ?

Susan Sarandon
Libérer: 2024-10-30 20:02:02
original
697 Les gens l'ont consulté

How to Render Newlines Correctly in HTML Templates?

Surmonter le problème d'échappement dans html/templates avec des nouvelles lignes

Dans les modèles HTML, les nouvelles lignes codées comme n sont rendues sous forme d'entités HTML (< br>) plutôt que des sauts de ligne réels. Cela se produit lorsque les n caractères sont échappés par le modèle au lieu d'être acceptés comme faisant partie des données fiables.

Solution : assainissement et pré-échappement

Pour résoudre ce problème, suivez ces étapes :

  1. Nettoyez le texte : Utilisez template.HTMLEscape() pour supprimer tous les caractères potentiellement dangereux du fichier texte.
  2. Remplacez nouvelles lignes : Après la désinfection, remplacez toutes les occurrences de "n" par "
    ".
  3. Utilisez les données pré-échappées : Transmettez le texte nettoyé et substitué au modèle en tant que template.HTML, qui encapsule des fragments HTML sécurisés.

Exemple de mise en œuvre :

Le code suivant illustre le processus :

<code class="go">package main

import (
    "html/template"
    "os"
    "strings"
)

const page = `<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <p>{{.}}</p>
  </body>
</html>`

const text = `first line
<script>dangerous</script>
last line`

func main() {
    t := template.Must(template.New("page").Parse(page))
    safe := template.HTMLEscapeString(text)
    safe = strings.Replace(safe, "\n", "<br>", -1)
    t.Execute(os.Stdout, template.HTML(safe))
}</code>
Copier après la connexion

Ce code nettoie le texte, remplace les nouvelles lignes par
et le transmet au modèle en tant que données pré-échappées. Le résultat rendu affichera correctement les sauts de ligne comme prévu sans échapper aux problèmes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!