Laravel string limit with html 标签显示的项目少于实际项目数
Laravel string limit with html tag shows less item than the actual number of items
我正在使用 laravel 和 blade 来遍历一些博客项目。我想显示带有 html 标签和 str_limit 功能的博客。
当我尝试时
{!!str_limit($blog->body, 450)!!}
它只显示 10 个博客或 22 个中的 11 个。它应该显示所有项目。
如果我使用 {{ str_limit($blog->body, 450) }}
它显示所有但没有 html 标签我的意思是 html 标签没有效果。
str_limit
不知道 HTML 标签,因此在包含 HTML 的字符串上使用它通常会导致未关闭的标签破坏页面的其余部分。
例如,一段以 <a href="http://google.co
结尾的摘录,因为它在那里被剪掉了,这意味着您页面的其余部分是 <a>
标记的一部分,直到您不小心输出了 "
又是 >
。
有几个选项可供您选择:
- 删除 HTML 标签。我知道您想保留它们,但这仍然是生成摘录的最简单方法。
- 输出整个 body,但给它最大高度和一个
overflow: hidden
来隐藏其余部分。这有带宽缺点,因此如果您的帖子非常长,它可能不是最好的方法。
- 制作您自己的摘录作为一个单独的字段。手动工作,但您始终可以控制。
- Find/code 一个 HTML-aware 摘录生成器。我不知道我可以推荐一个好的 - 这是一个复杂的问题。您可以尝试生成一个
str_limit
ed 字符串,然后 运行 通过 Tidy 结果,这可以 某种 修复无效 HTML。
我正在使用 laravel 和 blade 来遍历一些博客项目。我想显示带有 html 标签和 str_limit 功能的博客。
当我尝试时
{!!str_limit($blog->body, 450)!!}
它只显示 10 个博客或 22 个中的 11 个。它应该显示所有项目。
如果我使用 {{ str_limit($blog->body, 450) }}
它显示所有但没有 html 标签我的意思是 html 标签没有效果。
str_limit
不知道 HTML 标签,因此在包含 HTML 的字符串上使用它通常会导致未关闭的标签破坏页面的其余部分。
例如,一段以 <a href="http://google.co
结尾的摘录,因为它在那里被剪掉了,这意味着您页面的其余部分是 <a>
标记的一部分,直到您不小心输出了 "
又是 >
。
有几个选项可供您选择:
- 删除 HTML 标签。我知道您想保留它们,但这仍然是生成摘录的最简单方法。
- 输出整个 body,但给它最大高度和一个
overflow: hidden
来隐藏其余部分。这有带宽缺点,因此如果您的帖子非常长,它可能不是最好的方法。 - 制作您自己的摘录作为一个单独的字段。手动工作,但您始终可以控制。
- Find/code 一个 HTML-aware 摘录生成器。我不知道我可以推荐一个好的 - 这是一个复杂的问题。您可以尝试生成一个
str_limit
ed 字符串,然后 运行 通过 Tidy 结果,这可以 某种 修复无效 HTML。