【发布时间】:2013-04-18 22:37:38
【问题描述】:
我在 db 中保存了 html 数据。我想将 html 显示为缩短的..
我尝试像这样使用mb_strstr 函数;
$str = mb_strstr($this->htmlData, "</p>",true);
echo $str."</p>";
它与 html 的第一段相呼应。但问题是管理面板中填充了 html,有时第一段没有足够的文本。
我也不想在substr 中使用固定字符位置,因为有时可以说 200 个字符可以是 html 标记,因此它会产生无效格式的 html 格式输出。
所以我想学习这类问题的最佳实践。
谢谢。
【问题讨论】:
-
这里有一些乐趣。要学习的教训是不要将 html 存储在数据库中。带有关闭 p 标签的 mb_strstr 应该可以防止它在一个标签中分裂,但这并不意味着你没有在一个让另一个标签敞开的地方分裂。
-
不将其存储在数据库中是什么意思?它有点像 wordpress 的 cms。用户在 WYSIWYG 编辑器中输入博客文章,然后将 html 源代码保存在 db 中。这里到底有什么问题?
-
我只是个傻瓜。您可以存储使用 strip_tags() 删除 html 的摘要,但这在其他方面可能不可靠。可能比尝试正则表达式字符串并在读取时关闭所有标签更痛苦。