Affichage correct des nouvelles lignes dans les modèles HTML
Lors du chargement de fichiers texte avec des nouvelles lignes dans des modèles HTML, les développeurs rencontrent souvent un problème où ces nouvelles lignes sont échappées à "
" au lieu d'être affiché sous forme de sauts de ligne. Cela peut être problématique pour maintenir un formatage et une lisibilité corrects.
Pour relever ce défi, vous pouvez d'abord nettoyer votre texte à l'aide de template.HTMLEscape() pour supprimer toute vulnérabilité XSS potentielle. Par la suite, vous pouvez remplacer les nouvelles lignes ("n") par "
" en utilisant strings.Replace(). Le texte modifié doit ensuite être encapsulé dans template.HTML() pour le marquer comme un fragment HTML fiable et sûr.
Un exemple d'implémentation dans Go illustre cette approche :
<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>
Cette approche garantit que les nouvelles lignes sont affichées correctement sous forme de sauts de ligne dans le navigateur, tout en conservant l'intégrité du contenu HTML rendu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!