Laravel中如何在<div>标签间正确显示换行<br>?
解决MySQL文本换行符在网页显示为<br>文本的问题
问题核心是Blade模板的{{ }}语法会自动转义HTML内容,你替换生成的<br>被转成了文本形式的<br>,所以无法实现换行效果。
给你几个可行的解决办法:
直接使用Blade的非转义输出语法
{!! !!},替换原代码的{{ }}:<div class="span-comment">{!! str_replace("\n", "<br>", mb_substr($message->description, 0, 256)) !!}</div>注意:如果
$message->description包含用户输入的内容,要确保内容安全,避免XSS攻击。若要兼顾安全,先过滤掉内容中的危险HTML标签再输出:
<div class="span-comment">{!! str_replace("\n", "<br>", strip_tags(mb_substr($message->description, 0, 256))) !!}</div>用Laravel自带的
nl2br辅助函数简化换行替换,同样配合非转义输出:<div class="span-comment">{!! nl2br(mb_substr($message->description, 0, 256)) !!}</div>
内容的提问来源于stack exchange,提问作者EduardRST
相关产品推荐
相关产品推荐

