Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rendert man Zeilenumbrüche in HTML-Vorlagen richtig?

Wie rendert man Zeilenumbrüche in HTML-Vorlagen richtig?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 14:59:02887Durchsuche

How to Properly Render Line Breaks in HTML Templates?

Neue Zeilen durch
ersetzen in HTML-Vorlagen

In HTML-Vorlagen kann das Ersetzen von Zeilenumbrüchen (n) durch Markup (
) aufgrund von Escapezeichen zu unerwartetem Verhalten führen. Wenn die geladene Zeichenfolge an die Vorlage übergeben wird, werden Zeilenumbrüche in
maskiert, was dazu führt, dass sie als wörtlicher Text anstelle von Zeilenumbrüchen angezeigt werden.

Lösung:

Um dieses Problem zu beheben, können Sie den Text vorverarbeiten, bevor Sie ihn in der Vorlage verwenden. So geht's:

  1. Bereinigen Sie die Eingabe: Verwenden Sie die Funktion template.HTMLEscape(), um den Text zu bereinigen und alle potenziell schädlichen Fragmente zu entfernen.
  2. Ersetzen Sie Zeilenumbrüche: Ersetzen Sie nach der Bereinigung die Zeilenumbrüche (n) durch Markup (
    ).
  3. Umbruch in HTML: Kapseln Sie den vorverarbeiteten Text als HTML mit template.HTML . Dadurch wird sichergestellt, dass die Vorlagen-Engine weiß, dass der Inhalt sicher ist.
  4. Führen Sie die Vorlage aus: Übergeben Sie den bereinigten und vorverarbeiteten Text an die Vorlage zum Rendern.

Beispielcode:

<code class="go">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)) // Encapsulate as HTML
}</code>

Dieser Code stellt sicher, dass jeglicher schädlicher Inhalt im Eingabetext neutralisiert wird und ermöglicht die ordnungsgemäße Darstellung von Zeilenumbrüchen mithilfe von Markup.

Das obige ist der detaillierte Inhalt vonWie rendert man Zeilenumbrüche in HTML-Vorlagen richtig?. 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