Heim >Backend-Entwicklung >Golang >Wie werden Zeilenumbrüche in HTML-Vorlagen korrekt angezeigt?

Wie werden Zeilenumbrüche in HTML-Vorlagen korrekt angezeigt?

Susan Sarandon
Susan SarandonOriginal
2024-10-31 12:38:01937Durchsuche

How to Display Newlines Correctly in HTML Templates?

Korrekte Anzeige von Zeilenumbrüchen in HTML-Vorlagen

Beim Laden von Textdateien mit Zeilenumbrüchen in HTML-Vorlagen stoßen Entwickler häufig auf ein Problem, bei dem diese Zeilenumbrüche maskiert werden zu „
“ anstatt als Zeilenumbrüche angezeigt zu werden. Dies kann für die Aufrechterhaltung der korrekten Formatierung und Lesbarkeit problematisch sein.

Um dieser Herausforderung zu begegnen, können Sie Ihren Text zunächst mit template.HTMLEscape() bereinigen, um alle potenziellen XSS-Schwachstellen zu beseitigen. Anschließend können Sie die Zeilenumbrüche („n“) durch „
“ ersetzen. mit strings.Replace(). Der geänderte Text sollte dann in template.HTML() gekapselt werden, um ihn als vertrauenswürdiges und sicheres HTML-Fragment zu kennzeichnen.

Eine Beispielimplementierung in Go demonstriert diesen Ansatz:

<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>

Dieser Ansatz stellt sicher, dass die Zeilenumbrüche korrekt als Zeilenumbrüche im Browser angezeigt werden und gleichzeitig die Integrität des gerenderten HTML-Inhalts gewahrt bleibt.

Das obige ist der detaillierte Inhalt vonWie werden Zeilenumbrüche in HTML-Vorlagen korrekt angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn