줄바꿈을
로 바꾸기 HTML 템플릿
HTML 템플릿에서 줄바꿈(n)을 마크업(
)으로 바꾸면 이스케이프 처리로 인해 예기치 않은 동작이 발생할 수 있습니다. 로드된 문자열이 템플릿에 전달되면 줄 바꿈이
로 이스케이프되어 줄 바꿈 대신 리터럴 텍스트로 표시됩니다.
해결책:
이 문제를 해결하려면 템플릿에서 텍스트를 사용하기 전에 텍스트를 사전 처리하면 됩니다. 방법은 다음과 같습니다.
예제 코드:
<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>
이 코드는 입력 텍스트의 모든 악성 콘텐츠가 중화되고 마크업을 사용하여 줄바꿈을 적절하게 렌더링할 수 있도록 보장합니다.
위 내용은 HTML 템플릿에서 줄 바꿈을 올바르게 렌더링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!