Heim >Backend-Entwicklung >Golang >Wie rendert man Zeilenumbrüche in HTML-Vorlagen richtig?
Überwindung des Escape-Problems in HTML/Vorlagen mit Zeilenumbrüchen
In HTML-Vorlagen werden als n codierte Zeilenumbrüche als HTML-Entitäten gerendert (< br>) statt tatsächlicher Zeilenumbrüche. Dies tritt auf, wenn die n Zeichen von der Vorlage maskiert werden, anstatt als Teil vertrauenswürdiger Daten akzeptiert zu werden.
Lösung: Bereinigung und Vorab-Escapezeichen
Um dieses Problem zu beheben, Befolgen Sie diese Schritte:
Beispielimplementierung:
Der folgende Code demonstriert den Prozess:
<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>
Dieser Code bereinigt den Text, ersetzt Zeilenumbrüche durch
und übergibt ihn als vorab maskierte Daten an die Vorlage. Das gerenderte Ergebnis zeigt Zeilenumbrüche korrekt und ohne Escape-Probleme an.
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!