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

Bagaimana untuk Membuat Pemisahan Baris dengan Betul dalam Templat HTML?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 14:59:02879semak imbas

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>

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!

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