Maison  >  Article  >  développement back-end  >  Comment afficher correctement les nouvelles lignes dans les modèles HTML ?

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

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 12:38:01859parcourir

How to Display Newlines Correctly in HTML Templates?

Affichage correct des nouvelles lignes dans les modèles HTML

Lors du chargement de fichiers texte avec des nouvelles lignes dans des modèles HTML, les développeurs rencontrent souvent un problème où ces nouvelles lignes sont échappées à "
" au lieu d'être affiché sous forme de sauts de ligne. Cela peut être problématique pour maintenir un formatage et une lisibilité corrects.

Pour relever ce défi, vous pouvez d'abord nettoyer votre texte à l'aide de template.HTMLEscape() pour supprimer toute vulnérabilité XSS potentielle. Par la suite, vous pouvez remplacer les nouvelles lignes ("n") par "
" en utilisant strings.Replace(). Le texte modifié doit ensuite être encapsulé dans template.HTML() pour le marquer comme un fragment HTML fiable et sûr.

Un exemple d'implémentation dans Go illustre cette approche :

<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)) // template.HTML encapsulates a known safe HTML document fragment.
}</code>

Cette approche garantit que les nouvelles lignes sont affichées correctement sous forme de sauts de ligne dans le navigateur, tout en conservant l'intégrité du contenu HTML rendu.

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!

Déclaration:
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