php字符限制(修剪html段落)

时间:2012-02-08 22:28:18

标签: php trim

我们有自己的博客系统,后期数据存储了一个原始的html,所以当它从数据库中调用时我们可以回显它并且它完全格式化,在我们的情况下不需要BB代码。我们现在的问题是我们的博文有时太长,需要修剪。

问题是我们的数据包含html,主要是<font><span><p><b>和其他样式标记。我做了一个修剪字符的PHP函数,但它没有考虑到html标签。如果修剪功能修剪了博客,它不应该修剪标签,因为它会混淆整个页面。该函数需要能够关闭html标签,如果它们被修剪。有没有可以做到这一点的功能?或者我可以从中开始建立的功能?

4 个答案:

答案 0 :(得分:2)

strip_tags除去所有HTML标签,但除此之外没有太多。

顺便说一句,这不是一件容易的事情,你必须实际解析 HTML以找出哪些标签是开放的 - 这是最强大的方法。另外,don't use a regular expression

答案 1 :(得分:2)

正确的解决方案是不在您的数据库层中存储显示信息。

如果不这样做,你可以使用CSS overflow属性:打印整个帖子,然后让显示层处理大小以适应它。通过将调整大小(显示问题,而不是内容问题)放入显示层,可以缓解数据库中格式化信息的问题。

失败,您可以解析HTML并“向上”或“向下舍入”到最近的标记边界,然后插入完成您所在块所需的标记关闭字符。

另一种选择是iframe内容。

答案 2 :(得分:2)

答案 3 :(得分:0)

我知道这不是以编程方式执行此操作的最佳方式,但您是否考虑过手动指定剪切应该在哪里?添加类似的东西并手动切割它可以让你控制切割发生的位置,无论它前面的字符数是多少。例如,您可以始终将其放在第一段之下。

不可否认,你失去了让它自动发生的能力,但是如果对你来说无关紧要的话,我会提起它。