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