Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membuat Pemisahan Baris dengan Betul dalam Templat HTML?

Bagaimana untuk Membuat Pemisahan Baris dengan Betul dalam Templat HTML?

Linda Hamilton
Lepaskan: 2024-10-30 14:59:02
asal
1006 orang telah melayarinya

How to Properly Render Line Breaks in HTML Templates?

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:

  1. Sanitasi input: Gunakan fungsi templat.HTMLEscape() untuk membersihkan teks dan mengalih keluar sebarang serpihan yang berpotensi berniat jahat.
  2. Gantikan baris baharu: Selepas sanitasi, gantikan baris baharu (n) dengan penanda (
    ).
  3. Balut dalam HTML: Bungkus teks praproses sebagai HTML menggunakan templat.HTML . Ini memastikan enjin templat mengetahui kandungannya selamat.
  4. Laksanakan templat: Hantar teks yang telah disanitasi dan praproses kepada templat untuk pemaparan.

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan