HTML テンプレートで改行を正しく表示する
改行を含むテキスト ファイルを HTML テンプレートにロードすると、開発者はこれらの改行がエスケープされる問題に遭遇することがよくあります。 「
」へ改行として表示されるのではなく。これは、正しい書式設定と読みやすさを維持する上で問題となる可能性があります。
この課題に対処するには、まず template.HTMLEscape() を使用してテキストをサニタイズし、潜在的な XSS 脆弱性をすべて削除します。その後、改行 (「n」) を「
」に置き換えることができます。 strings.Replace() を使用します。変更されたテキストは、template.HTML() 内でカプセル化され、信頼できる安全な HTML フラグメントとしてマークされます。
Go での実装例は、このアプローチを示しています。
<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>
このアプローチレンダリングされた HTML コンテンツの整合性を維持しながら、改行がブラウザーで改行として正しく表示されるようにします。
以上がHTML テンプレートで改行を正しく表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。