Menggantikan Baris Baharu dengan
dalam Templat HTML
Dalam templat HTML, menggantikan baris baharu (n) dengan penanda (
) boleh membawa kepada tingkah laku yang tidak dijangka kerana melarikan diri. Apabila rentetan yang dimuatkan dihantar ke templat, baris baharu terlepas ke
, menghasilkan paparannya sebagai teks literal dan bukannya pemisah baris.
Penyelesaian:
Untuk menangani isu ini, anda boleh praproses teks sebelum menggunakannya dalam templat. Begini caranya:
Kod Contoh:
<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>
Kod ini memastikan sebarang kandungan berniat jahat dalam teks input dinetralkan dan membenarkan pemaparan baris baharu yang betul menggunakan penanda.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Pemisahan Baris dengan Betul dalam Templat HTML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!